0.98.1 Linux: Crash moving files while in view mode

Reported bugs that have been closed and/or resolved

Moderators: XnTriq, helmut, xnview, Dreamer

Post Reply
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

0.98.1 Linux: Crash moving files while in view mode

Post by juozas »

XnView: MP 0.85, 0.90, 0.98.1 - 64 bit
OS: Ubuntu Linux 18.04.1 LTS (Codename bionic), Ubuntu Linux 20.04 LTS (Codename focal)
CPU: Pentium(R) Dual-Core CPU E6300 @ 2.80GHz
Desktop: Xfce 4.12

Repetedly moving files while in view mode XnView is crashing to desktop when it's about to move a file. Might be a regression, since similar bug existed in earlier versions. Browser mode not tested.

Effect: Crash to desktop, no log, no file in /var/crash, SIGABRT shown when running in debugger

To reproduce:
1. Open xnview
2. Load image
3. Close viewer
4. Optionally go to full screen mode, move files one by one, optionally delete a few, repeat untill you trigger a crash

Actual behaviour (bug): Repetedly moving files from same folder to dirfferent directories sometimes causes a crash, which might be related to /viewtopic.php?f=104&t=36330, though backtrace is different :bug:

Gdb backtrace produced using this script below (modified copy of /usr/bin/xnview):

Code: Select all

#!/bin/sh

export LD_LIBRARY_PATH=/opt/XnView/lib
export QT_PLUGIN_PATH=/opt/XnView/lib

if [ $# -lt 1 ]; then
  gdb --args /opt/XnView/XnView
else
  gdb --args /opt/XnView/XnView "$@"
fi
Full backtrace (whole output captured by redirecting output of script above to file):

Code: Select all

Thread 1 "XnView" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: Toks failas ar aplankas neegzistuoja.
(gdb) thread apply all backtrace full

Thread 18 (Thread 0x7fffd24d8700 (LWP 5503)):
#0  0x00007ffff59da9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1c4f6e0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd24d7950, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 72, cond = 0x1c4f6b8, mutex = 0x1c4f690, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 36
#1  0x00007ffff59da9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1c4f690, cond=0x1c4f6b8) at pthread_cond_wait.c:502
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd24d7950, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 72, cond = 0x1c4f6b8, mutex = 0x1c4f690, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 36
#2  0x00007ffff59da9f3 in __pthread_cond_wait (cond=0x1c4f6b8, mutex=0x1c4f690) at pthread_cond_wait.c:655
#3  0x00007ffff5c97a6b in QWaitCondition::wait(QMutex*, unsigned long) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x0000000000474913 in  ()
#5  0x00007ffff5c96c3a in  () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff59d46db in start_thread (arg=0x7fffd24d8700) at pthread_create.c:463
        pd = 0x7fffd24d8700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736721684224, 7089592863673257436, 140736721682176, 1, 29507456, 140737488338816, -7089528108463452708, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fffd0f53700 (LWP 5490)):
#0  0x00007ffff59da9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1d102c4) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd0f52930, __canceltype = -789238304, __prev = 0x0}
        cbuffer = {wseq = 179, cond = 0x1d10298, mutex = 0x1d10270, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 89
#1  0x00007ffff59da9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1d10270, cond=0x1d10298) at pthread_cond_wait.c:502
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd0f52930, __canceltype = -789238304, __prev = 0x0}
        cbuffer = {wseq = 179, cond = 0x1d10298, mutex = 0x1d10270, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 89
#2  0x00007ffff59da9f3 in __pthread_cond_wait (cond=0x1d10298, mutex=0x1d10270) at pthread_cond_wait.c:655
#3  0x00007ffff5c97a6b in QWaitCondition::wait(QMutex*, unsigned long) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x0000000000839569 in  ()
#5  0x00007ffff5c96c3a in  () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff59d46db in start_thread (arg=0x7fffd0f53700) at pthread_create.c:463
        pd = 0x7fffd0f53700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736699119360, 7089592863673257436, 140736699117312, 0, 24945776, 140737488335696, -7089533534617760292, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fffd1754700 (LWP 5489)):
#0  0x00007ffff59da9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1b51724) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd1753cd0, __canceltype = -1140847632, __prev = 0x0}
        cbuffer = {wseq = 3, cond = 0x1b516f8, mutex = 0x1b516d0, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 1
#1  0x00007ffff59da9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1b516d0, cond=0x1b516f8) at pthread_cond_wait.c:502
        spin = 0
        buffer = {__routine = 0x7ffff59da690 <__condvar_cleanup_waiting>, __arg = 0x7fffd1753cd0, __canceltype = -1140847632, __prev = 0x0}
        cbuffer = {wseq = 3, cond = 0x1b516f8, mutex = 0x1b516d0, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        signals = <optimized out>
        result = 0
        seq = 1
#2  0x00007ffff59da9f3 in __pthread_cond_wait (cond=0x1b516f8, mutex=0x1b516d0) at pthread_cond_wait.c:655
#3  0x00007ffff5c97a6b in QWaitCondition::wait(QMutex*, unsigned long) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00000000004b8606 in  ()
#5  0x00007ffff5c96c3a in  () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff59d46db in start_thread (arg=0x7fffd1754700) at pthread_create.c:463
        pd = 0x7fffd1754700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736707512064, 7089592863673257436, 140736707510016, 1, 28619264, 140737488344112, -7089534634666258980, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#7  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fffd3d80700 (LWP 5485)):
#0  0x00007ffff3b1ebf9 in __GI___poll (fds=0x7fffc8002930, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff32eb439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff32eb54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5ebb36f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00007ffff5e6605a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff5c91f9b in QThread::exec() () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007fffe52765e5 in  () at /opt/XnView/lib/libQt5DBus.so.5
#7  0x00007ffff5c96c3a in  () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff59d46db in start_thread (arg=0x7fffd3d80700) at pthread_create.c:463
        pd = 0x7fffd3d80700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736747538176, 7089592863673257436, 140736747536128, 0, 140737040518528, 140737488343488, -7089531634631602724, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#9  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffd9922700 (LWP 5482)):
#0  0x00007ffff3b1ebf9 in __GI___poll (fds=0x1518f20, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff32eb439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff32eb7d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffde8a8e76 in  () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff3312e05 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff59d46db in start_thread (arg=0x7fffd9922700) at pthread_create.c:463
        pd = 0x7fffd9922700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736843622144, 7089592863673257436, 140736843620096, 0, 21631056, 140737488343552, -7089519027828847140, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffda123700 (LWP 5481)):
#0  0x00007ffff3b1ebf9 in __GI___poll (fds=0x150c9d0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff32eb439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff32eb54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff32eb591 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff3312e05 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff59d46db in start_thread (arg=0x7fffda123700) at pthread_create.c:463
        pd = 0x7fffda123700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736852014848, 7089592863673257436, 140736852012800, 0, 21629808, 140737488343168, -7089511329636839972, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe49e9700 (LWP 5480)):
#0  0x00007ffff3b1ebf9 in __GI___poll (fds=0x7fffe49e8ca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007fffedcfa747 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fffedcfc36a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe5a1e709 in  () at /opt/XnView/lib/libQt5XcbQpa.so.5
#4  0x00007ffff5c96c3a in  () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff59d46db in start_thread (arg=0x7fffe49e9700) at pthread_create.c:463
        pd = 0x7fffe49e9700
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140737028986624, 7089592863673257436, 140737028984576, 0, 20819872, 140737488344240, -7089648670879805988, -7089615657374347812}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff3b2b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fa9800 (LWP 5476)):
#0  0x00007ffff3a48e97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
        set = {__val = {0, 0, 140737488341104, 140737281649288, 0, 0, 140737488340240, 0, 140737488340320, 0, 0, 140737488340368, 21157608, 0, 2070, 0}}
        pid = <optimized out>
        tid = <optimized out>
#1  0x00007ffff3a4a801 in __GI_abort () at abort.c:79
        save_stage = 1
        act = 
          {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {1534667196, 230, 140737281638876, 154618822656, 118, 30064763872, 230, 11, 26, 36, 4294967785, 154618822656, 140733193388033, 18446744073709540816, 140737488340816, 140737488341104}}, sa_flags = -14512, sa_restorer = 0x1000}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff3a93897 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff3bc0b9a "%s\n") at ../sysdeps/posix/libc_fatal.c:181
        ap = {{gp_offset = 24, fp_offset = 0, overflow_arg_area = 0x7fffffffc880, reg_save_area = 0x7fffffffc810}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3  0x00007ffff3a9a90a in malloc_printerr (str=str@entry=0x7ffff3bbec9d "corrupted size vs. prev_size") at malloc.c:5350
#4  0x00007ffff3a9f20e in _int_malloc (av=av@entry=0x7ffff3df5c40 <main_arena>, bytes=bytes@entry=76) at malloc.c:3926
        p = 0x7ffff3a48e97 <__GI_raise+199>
        iters = <optimized out>
        nb = 96
        idx = <optimized out>
        bin = <optimized out>
        victim = <optimized out>
        size = <optimized out>
        victim_index = <optimized out>
        remainder = <optimized out>
        remainder_size = <optimized out>
        block = <optimized out>
        bit = <optimized out>
        map = <optimized out>
        fwd = <optimized out>
        bck = <optimized out>
        tcache_unsorted_count = <optimized out>
        tcache_nb = 96
        tc_idx = 4
        return_cached = <optimized out>
        __PRETTY_FUNCTION__ = "_int_malloc"
#5  0x00007ffff3aa12ed in __GI___libc_malloc (bytes=76) at malloc.c:3065
        ar_ptr = 0x7ffff3df5c40 <main_arena>
        victim = <optimized out>
        hook = <optimized out>
        tbytes = <optimized out>
        tc_idx = <optimized out>
#6  0x00007ffff5c97d9d in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) () at /opt/XnView/lib/libQt5Core.so.5
#7  0x00007ffff5d0a31d in QString::reallocData(unsigned int, bool) () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff5d0ad9f in QString::remove(int, int) () at /opt/XnView/lib/libQt5Core.so.5
#9  0x00007ffff5dd0dca in  () at /opt/XnView/lib/libQt5Core.so.5
#10 0x00007ffff5dd2bb5 in  () at /opt/XnView/lib/libQt5Core.so.5
#11 0x00007ffff5dd2e9b in  () at /opt/XnView/lib/libQt5Core.so.5
#12 0x00007ffff5dd231e in QSettings::event(QEvent*) () at /opt/XnView/lib/libQt5Core.so.5
#13 0x00007ffff6fc35bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#14 0x00007ffff6fca8c1 in QApplication::notify(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#15 0x00007ffff5e67a38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Core.so.5
#16 0x00007ffff5e6a67d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /opt/XnView/lib/libQt5Core.so.5
#17 0x00007ffff5ebbd13 in  () at /opt/XnView/lib/libQt5Core.so.5
#18 0x00007ffff32eb287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff32eb4c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff32eb54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff5ebb36f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#22 0x00007ffff5e6605a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#23 0x00007ffff719f757 in QDialog::exec() () at /opt/XnView/lib/libQt5Widgets.so.5
#24 0x00000000007b17d0 in  ()
#25 0x000000000085477e in  ()
#26 0x0000000000974135 in  ()
#27 0x00007ffff5e92df7 in QMetaObject::activate(QObject*, int, int, void**) () at /opt/XnView/lib/libQt5Core.so.5
#28 0x00007ffff6fbd5c2 in QAction::triggered(bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#29 0x00007ffff6fbfaa0 in QAction::activate(QAction::ActionEvent) () at /opt/XnView/lib/libQt5Widgets.so.5
#30 0x00007ffff6fc0394 in QAction::event(QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#31 0x00007ffff6fc35bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#32 0x00007ffff6fca8c1 in QApplication::notify(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#33 0x00007ffff5e67a38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Core.so.5
#34 0x00007ffff67e6f66 in QShortcutMap::dispatchEvent(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#35 0x00007ffff67e7039 in QShortcutMap::tryShortcut(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#36 0x00007ffff679c601 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /opt/XnView/lib/libQt5Gui.so.5
#37 0x00007ffff67b7b5c in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#38 0x00007ffff67bcb95 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#39 0x00007ffff67987bb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Gui.so.5
#40 0x00007fffe5a92e60 in  () at /opt/XnView/lib/libQt5XcbQpa.so.5
#41 0x00007ffff32eb287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007ffff32eb4c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007ffff32eb54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007ffff5ebb36f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#45 0x00007ffff5e6605a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#46 0x00007ffff5e6e964 in QCoreApplication::exec() () at /opt/XnView/lib/libQt5Core.so.5
#47 0x0000000000770132 in  ()
#48 0x00007ffff3a2bb97 in __libc_start_main (main=0x76fe1c, argc=1, argv=0x7fffffffdf48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf38)
    at ../csu/libc-start.c:310
        result = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {0, 7089592413676867036, 4617072, 140737488346944, 0, 0, -7089592864765407780, -7089602181715882532}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#49 0x0000000000467399 in  ()
xnview.log.gz
Full crash log (gzip archive)
(26.47 KiB) Downloaded 31 times
Expected behaviour: No crash while moving files
Last edited by juozas on Fri Feb 05, 2021 10:29 am, edited 2 times in total.
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by xnview »

juozas wrote: Sun Aug 19, 2018 9:11 am XnView: MP 0.85 - 64 bit
same problem with 0.91?
Pierre.
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

0.91 Works fine under gdb, didn't experience crash yet (0.90 was faulty though, with not exactly same problem like in previous thread) still crashing under 0.92
Last edited by juozas on Sat Oct 13, 2018 11:57 am, edited 2 times in total.
Сделано в СССР
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

Noticed a version 0.92 crash while moving files to a subfolder on same directory. The path contains spaces and non/ascii (such as ą,č,ę,ė,į,š,ų,ū,ž) characters and each directory contains over 300 images not mentioning a bunch of subfolders inside target folder. Last line of dmesg command output copied from terminal:

Code: Select all

[18367.121123] traps: XnView[7052] general protection ip:7ff0cf799989 sp:7ffd07026900 error:0 in libc-2.27.so[7ff0cf709000+1e7000]
Anyway disregard my post from above since the crash still occurs on some rare times

Update: Generated a backtrace while under gdb, same nature as in top post:

Code: Select all

MOVE : </home/juozas/Paveikslėliai/manga, anime & novels/>
MOVE file : </home/juozas/Paveikslėliai/1537455181835.png> => </home/juozas/Paveikslėliai/manga, anime & novels/>

Thread 1 "XnView" received signal SIGSEGV, Segmentation fault.
0x00007ffff342e989 in malloc_consolidate (av=av@entry=0x7ffff3789c40 <main_arena>) at malloc.c:4456
4456	malloc.c: Toks failas ar aplankas neegzistuoja.
...
(gdb) thread apply all bt

Thread 10 (Thread 0x7fffc6eba700 (LWP 7953)):
#0  0x00007ffff59e09f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x18715b4) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007ffff59e09f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1871560, cond=0x1871588) at pthread_cond_wait.c:502
#2  0x00007ffff59e09f3 in __pthread_cond_wait (cond=0x1871588, mutex=0x1871560) at pthread_cond_wait.c:655
#3  0x00007ffff5c9d79b in QWaitCondition::wait(QMutex*, unsigned long) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x0000000000478b43 in  ()
#5  0x00007ffff5c9c97a in  () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff59da6db in start_thread (arg=0x7fffc6eba700) at pthread_create.c:463
#7  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fffc7fff700 (LWP 7948)):
#0  0x00007ffff59e09f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1872f24) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007ffff59e09f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1872ed0, cond=0x1872ef8) at pthread_cond_wait.c:502
#2  0x00007ffff59e09f3 in __pthread_cond_wait (cond=0x1872ef8, mutex=0x1872ed0) at pthread_cond_wait.c:655
#3  0x00007ffff5c9d79b in QWaitCondition::wait(QMutex*, unsigned long) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x000000000085acb5 in  ()
#5  0x00007ffff5c9c97a in  () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff59da6db in start_thread (arg=0x7fffc7fff700) at pthread_create.c:463
#7  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fffd5255700 (LWP 7947)):
#0  0x00007ffff34b2bf9 in __GI___poll (fds=0x7fffcc002930, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff2c7f439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff2c7f54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5ebe6af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00007ffff5e6a3da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff5c97dbc in QThread::exec() () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007fffe232a635 in  () at /opt/XnView/lib/libQt5DBus.so.5
#7  0x00007ffff5c9c97a in  () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff59da6db in start_thread (arg=0x7fffd5255700) at pthread_create.c:463
#9  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffd6da9700 (LWP 7944)):
#0  0x00007ffff34b2bf9 in __GI___poll (fds=0x1553050, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff2c7f439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff2c7f7d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffdbd2ff66 in  () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff2ca6e85 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff59da6db in start_thread (arg=0x7fffd6da9700) at pthread_create.c:463
#6  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffd75aa700 (LWP 7943)):
#0  0x00007ffff34b2bf9 in __GI___poll (fds=0x1541b50, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff2c7f439 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#2  0x00007ffff2c7f54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff2c7f591 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff2ca6e85 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff59da6db in start_thread (arg=0x7fffd75aa700) at pthread_create.c:463
#6  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe1a9d700 (LWP 7942)):
#0  0x00007ffff34b2bf9 in __GI___poll (fds=0x7fffe1a9cca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffeb7cf747 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fffeb7d136a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe2ad19f9 in  () at /opt/XnView/lib/libQt5XcbQpa.so.5
#4  0x00007ffff5c9c97a in  () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff59da6db in start_thread (arg=0x7fffe1a9d700) at pthread_create.c:463
#6  0x00007ffff34bf88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fa3800 (LWP 7938)):
#0  0x00007ffff342e989 in malloc_consolidate (av=av@entry=0x7ffff3789c40 <main_arena>) at malloc.c:4456
#1  0x00007ffff34327d8 in _int_malloc (av=av@entry=0x7ffff3789c40 <main_arena>, bytes=bytes@entry=8192) at malloc.c:3703
#2  0x00007ffff34352ed in __GI___libc_malloc (bytes=8192) at malloc.c:3065
#3  0x00007ffff41227ac in  () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#4  0x00007ffff4122c1b in _XmbTextListToTextProperty () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007fffe2ae6821 in QXcbWindow::setWindowTitle(QString const&) () at /opt/XnView/lib/libQt5XcbQpa.so.5
#6  0x00007fffe2aeca77 in QXcbWindow::create() () at /opt/XnView/lib/libQt5XcbQpa.so.5
#7  0x00007fffe2ad949e in QXcbIntegration::createPlatformWindow(QWindow*) const () at /opt/XnView/lib/libQt5XcbQpa.so.5
#8  0x00007ffff67f9936 in QWindowPrivate::create(bool, unsigned long long) () at /opt/XnView/lib/libQt5Gui.so.5
#9  0x00007ffff6ff6b09 in QWidgetPrivate::create_sys(unsigned long long, bool, bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#10 0x00007ffff6ff7159 in QWidget::create(unsigned long long, bool, bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#11 0x00007ffff7001679 in QWidget::setVisible(bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#12 0x00007ffff71a06ad in QDialog::setVisible(bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#13 0x00007ffff719fc11 in QDialog::exec() () at /opt/XnView/lib/libQt5Widgets.so.5
#14 0x00000000007d2d54 in  ()
#15 0x0000000000875995 in  ()
#16 0x00000000009993fb in  ()
#17 0x00007ffff5e963c9 in QMetaObject::activate(QObject*, int, int, void**) () at /opt/XnView/lib/libQt5Core.so.5
#18 0x00007ffff6fbf862 in QAction::triggered(bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#19 0x00007ffff6fc1d00 in QAction::activate(QAction::ActionEvent) () at /opt/XnView/lib/libQt5Widgets.so.5
#20 0x00007ffff6fc25df in QAction::event(QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#21 0x00007ffff6fc57ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#22 0x00007ffff6fccc17 in QApplication::notify(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#23 0x00007ffff5e6bde8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Core.so.5
#24 0x00007ffff681bb08 in QShortcutMap::dispatchEvent(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#25 0x00007ffff681bbc9 in QShortcutMap::tryShortcut(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#26 0x00007ffff67d0442 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /opt/XnView/lib/libQt5Gui.so.5
#27 0x00007ffff67eca1c in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
---Type <return> to continue, or q <return> to quit---
#28 0x00007ffff67f1aa5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#29 0x00007ffff67cc5bb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Gui.so.5
#30 0x00007fffe2b44f20 in  () at /opt/XnView/lib/libQt5XcbQpa.so.5
#31 0x00007ffff2c7f287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff2c7f4c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff2c7f54c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff5ebe6af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#35 0x00007ffff5e6a3da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#36 0x00007ffff5e72cb4 in QCoreApplication::exec() () at /opt/XnView/lib/libQt5Core.so.5
#37 0x0000000000790eb2 in  ()
#38 0x00007ffff33bfb97 in __libc_start_main (main=0x790b9c, argc=2, argv=0x7fffffffdf08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdef8)
    at ../csu/libc-start.c:310
#39 0x000000000046b31b in  ()
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by xnview »

juozas wrote: Sat Oct 13, 2018 11:55 am Noticed a version 0.92 crash while moving files to a subfolder on same directory. The path contains spaces and non/ascii (such as ą,č,ę,ė,į,š,ų,ū,ž) characters and each directory contains over 300 images not mentioning a bunch of subfolders inside target folder.
Are you able to reproduce each time?
Pierre.
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

Xnview doesn't always crash moving files when using it. Some times does some other times it doesn't. At first moving to same directory works ok then some times after a while I see a crash. If i don't use xnview enough (moving files, etc.) it doesn't crash so frequently.
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by xnview »

the problem happens always with a path that contains spaces and non/ascii?
Pierre.
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

Not sure; It happens randomly but mostly in directories containing a lot of images. Btw can't test it now as the system architecture (arm 64 bit / Aarch64) i'm posting from is not supported by current version of xnviewmp, i'm running desktop linux installed using an android app, connected via vnc. Also I'm not at home, no access to home pc eather.
Edit: While testing at home for a while I didn't notice a crash yet as current folder name (not path, as it does include some unicode symbols) doesn't have non-ascii symbols nor targed subfolder contained any spaces. No crash while moving files from that subfolder to a nested subfolder of same subfolder yet.
Сделано в СССР
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

Noticed a very similar crash in 0.98.1 when in full screen while using view mode, running on Ubuntu 20.04 LTS with proposed (pre-released updates) repository enabled. Always crash when repeatedly moving files, right after confirming move on the dialog, it doesn't even get a change to close. Used same gdb wrapper as in first post to produce a backtrace.

Code: Select all

Create children /home/juozas/Paveikslėliai/manga, anime, novels & rpgs/
 AFTER WAIT
double free or corruption (fasttop)

Thread 8 "MyDirModelThrea" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffcf7fe700 (LWP 12993)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: Toks failas ar aplankas neegzistuoja.
(gdb) thread apply all bt full

Thread 8 (Thread 0x7fffcf7fe700 (LWP 12993)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 140737299716352, 0, 80, 0, 0, 65, 140733193388037, 65537, 140733193388153, 1, 210453397509, 1024, 4604204945409, 128, 140737292662643}}
        pid = <optimized out>
        tid = <optimized out>
#1  0x00007ffff44e9859 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x200000100, sa_sigaction = 0x200000100}, sa_mask = {__val = {140736674650624, 140733196402734, 1927416452521074688, 140736347646608, 140736674650784, 140736674650768, 140736349391064, 140736674650832, 140736349357512, 140736349494712, 140737297533694, 140736349357520, 140736349391064, 140736349357504, 72200739488, 140736349391056}}, sa_flags = 103632, sa_restorer = 0x10de}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff45543ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff467e285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
        ap = {{gp_offset = 24, fp_offset = 32767, overflow_arg_area = 0x7fffcf7fdbb0, reg_save_area = 0x7fffcf7fdb40}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
#3  0x00007ffff455c47c in malloc_printerr (str=str@entry=0x7ffff4680628 "double free or corruption (fasttop)") at malloc.c:5347
#4  0x00007ffff455dde5 in _int_free (av=0x7fffe0000020, p=0x7fffe0006030, have_lock=0) at malloc.c:4266
        idx = 3
        old = <optimized out>
        old2 = <optimized out>
        size = <optimized out>
        fb = 0x7fffe0000048
        nextchunk = <optimized out>
        nextsize = <optimized out>
        nextinuse = <optimized out>
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = <optimized out>
        __PRETTY_FUNCTION__ = "_int_free"
#5  0x00000000007c7f62 in  ()
#6  0x00000000007caaa9 in  ()
#7  0x00007ffff48f8845 in QThreadPrivate::start(void*) () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736674653952, -407932849457711127, 140737488342606, 140737488342607, 140737488342784, 140736674651776, 407898763594315753, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#9  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fffcffff700 (LWP 12992)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x24bbb84) at ../sysdeps/nptl/futex-internal.h:183
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffcfffebf0, __canceltype = 48, __prev = 0x0}
        cbuffer = {wseq = 3, cond = 0x24bbb58, mutex = 0x24bbb30, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 3
        seq = 1
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x24bbb30, cond=0x24bbb58) at pthread_cond_wait.c:508
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffcfffebf0, __canceltype = 48, __prev = 0x0}
        cbuffer = {wseq = 3, cond = 0x24bbb58, mutex = 0x24bbb30, private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 3
        seq = 1
#2  __pthread_cond_wait (cond=0x24bbb58, mutex=0x24bbb30) at pthread_cond_wait.c:638
#3  0x00007ffff48ff343 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00007ffff69ec400 in QFileInfoGatherer::run() () at /opt/XnView/lib/libQt5Widgets.so.5
#5  0x00007ffff48f8845 in QThreadPrivate::start(void*) () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736683046656, -407932849457711127, 140737488343102, 140737488343103, 140737488343280, 140736683044480, 407897664619558889, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#7  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fffdd390700 (LWP 12991)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1b7fba0) at ../sysdeps/nptl/futex-internal.h:183
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffdd38f880, __canceltype = -583467696, __prev = 0x0}
        cbuffer = {wseq = 4, cond = 0x1b7fb78, mutex = 0x1b7fb50, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 4
        seq = 2
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x1b7fb50, cond=0x1b7fb78) at pthread_cond_wait.c:508
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffdd38f880, __canceltype = -583467696, __prev = 0x0}
        cbuffer = {wseq = 4, cond = 0x1b7fb78, mutex = 0x1b7fb50, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 4
        seq = 2
#2  __pthread_cond_wait (cond=0x1b7fb78, mutex=0x1b7fb50) at pthread_cond_wait.c:638
#3  0x00007ffff48ff343 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x000000000085f96d in  ()
#5  0x00007ffff48f8845 in QThreadPrivate::start(void*) () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736904890112, -407932849457711127, 140737488343854, 140737488343855, 140737488344032, 140736904887936, 407858675443316713, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#7  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fffde08b700 (LWP 12990)):
#0  0x00007ffff45d9aff in __GI___poll (fds=0x7fffd4002920, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff1d0b18e in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff1d0b2c3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff4b3caac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00007ffff4adfafa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff48f7554 in QThread::exec() () at /opt/XnView/lib/libQt5Core.so.5
#6  0x00007fffe675bfd5 in QDBusConnectionManager::run() () at /opt/XnView/lib/libQt5DBus.so.5
#7  0x00007ffff48f8845 in QThreadPrivate::start(void*) () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736918501120, -407932849457711127, 140737488345086, 140737488345087, 140737488345264, 140736918498944, 407865132389775337, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#9  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffdf7fe700 (LWP 12987)):
#0  0x00007ffff45d9aff in __GI___poll (fds=0x17a77f0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff1d0b18e in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff1d0b513 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe4e03eda in  () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff1d34911 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736943089408, -407932849457711127, 140737488343726, 140737488343727, 140737488343872, 140736943087232, 407863579222226921, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#6  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffdffff700 (LWP 12986)):
#0  0x00007ffff45d9aff in __GI___poll (fds=0x1794650, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff1d0b18e in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff1d0b2c3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff1d0b311 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff1d34911 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736951482112, -407932849457711127, 140737488343294, 140737488343295, 140737488343440, 140736951479936, 407862480247470057, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#6  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe6208700 (LWP 12985)):
#0  0x00007ffff45d9aff in __GI___poll (fds=0x7fffe6207c08, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007ffff1df5c1a in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007ffff1df790a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe6b3c690 in QXcbEventQueue::run() () at /opt/XnView/lib/libQt5XcbQpa.so.5
#4  0x00007ffff48f8845 in QThreadPrivate::start(void*) () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00007ffff482b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737054279424, -407932849457711127, 140737488344606, 140737488344607, 140737488344784, 140737054277248, 407988619678857193, 407947648113194985}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#6  0x00007ffff45e6293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fffe7824880 (LWP 12981)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x24b5760) at ../sysdeps/nptl/futex-internal.h:183
        __ret = -512
        oldtype = 0
        err = <optimized out>
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffffffce50, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 0, cond = 0x24b5738, mutex = 0x24b5710, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 0
        seq = 0
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x24b5710, cond=0x24b5738) at pthread_cond_wait.c:508
        spin = 0
        buffer = {__routine = 0x7ffff4832050 <__condvar_cleanup_waiting>, __arg = 0x7fffffffce50, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 0, cond = 0x24b5738, mutex = 0x24b5710, private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 0
        seq = 0
#2  __pthread_cond_wait (cond=0x24b5738, mutex=0x24b5710) at pthread_cond_wait.c:638
#3  0x00007ffff48ff343 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /opt/XnView/lib/libQt5Core.so.5
#4  0x00007ffff48f8461 in QThread::wait(QDeadlineTimer) () at /opt/XnView/lib/libQt5Core.so.5
#5  0x00000000007ca765 in  ()
#6  0x00000000007ca799 in  ()
#7  0x00007ffff4b0d0a3 in QObjectPrivate::deleteChildren() () at /opt/XnView/lib/libQt5Core.so.5
#8  0x00007ffff4b1777e in QObject::~QObject() () at /opt/XnView/lib/libQt5Core.so.5
#9  0x00000000007c9619 in  ()
#10 0x00007ffff4b0d0a3 in QObjectPrivate::deleteChildren() () at /opt/XnView/lib/libQt5Core.so.5
#11 0x00007ffff6816227 in QWidget::~QWidget() () at /opt/XnView/lib/libQt5Widgets.so.5
#12 0x00000000007cfd39 in  ()
#13 0x00007ffff4b0d0a3 in QObjectPrivate::deleteChildren() () at /opt/XnView/lib/libQt5Core.so.5
#14 0x00007ffff6816227 in QWidget::~QWidget() () at /opt/XnView/lib/libQt5Widgets.so.5
#15 0x00007ffff68c2819 in QFrame::~QFrame() () at /opt/XnView/lib/libQt5Widgets.so.5
#16 0x00007ffff4b0d0a3 in QObjectPrivate::deleteChildren() () at /opt/XnView/lib/libQt5Core.so.5
#17 0x00007ffff6816227 in QWidget::~QWidget() () at /opt/XnView/lib/libQt5Widgets.so.5
#18 0x000000000063d03a in  ()
#19 0x0000000000884a54 in  ()
#20 0x00007ffff4b196bf in void doActivate<false>(QObject*, int, void**) () at /opt/XnView/lib/libQt5Core.so.5
#21 0x00007ffff67d6602 in QAction::triggered(bool) () at /opt/XnView/lib/libQt5Widgets.so.5
#22 0x00007ffff67d8a2e in QAction::activate(QAction::ActionEvent) () at /opt/XnView/lib/libQt5Widgets.so.5
#23 0x00007ffff67d932d in QAction::event(QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#24 0x00007ffff67dc3cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#25 0x00007ffff67e2eb0 in QApplication::notify(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Widgets.so.5
#26 0x00007ffff4ae10e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/XnView/lib/libQt5Core.so.5
#27 0x00007ffff59ccc16 in QShortcutMap::dispatchEvent(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#28 0x00007ffff59cd699 in QShortcutMap::tryShortcut(QKeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#29 0x00007ffff597f3d2 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /opt/XnView/lib/libQt5Gui.so.5
#30 0x00007ffff599ae94 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#31 0x00007ffff599fac5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /opt/XnView/lib/libQt5Gui.so.5
#32 0x00007ffff597b8cb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Gui.so.5
#33 0x00007fffe6b3d57a in xcbSourceDispatch(_GSource*, int (*)(void*), void*) () at /opt/XnView/lib/libQt5XcbQpa.so.5
#34 0x00007ffff1d0af9d in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff1d0b220 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff1d0b2c3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff4b3caac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#38 0x00007ffff4adfafa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/XnView/lib/libQt5Core.so.5
#39 0x00007ffff4ae8ab3 in QCoreApplication::exec() () at /opt/XnView/lib/libQt5Core.so.5
#40 0x00000000004ac1ee in  ()
#41 0x00007ffff44eb0b3 in __libc_start_main (main=0x4ac050, argc=2, argv=0x7fffffffe028, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe018) at ../csu/libc-start.c:308
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {15586448, -407932849457711127, 4900742, 140737488347168, 0, 0, 407932848404445161, 407949194206263273}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x7fffffffe028}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#42 0x00000000004ac7af in  ()
Edit: Experienced more crashes, attached a gzipped copy of terminal output that has full backtrace detail, updated backtrace above
Edi2: Created an example video showing the crash, program just closes, no error dialog.
Attachments
capture-2021-02-04_13.10.04.mp4
Example video of the crash happening in full screen, converted to mp4 using ffmpeg
(1.34 MiB) Downloaded 16 times
crash.txt.gz
Updated crash log (double free or corruption (fasttop) error, SIGABRT), with full gdb backtrace details, run under debugger using modified xnview script as described in the first post
(4.89 KiB) Downloaded 11 times
term.txt.gz
Full terminal output (malloc_consolidate(): invalid chunk size error, SIGABRT), from gdb wrapper start to crash, gzip'ed text file
(34.28 KiB) Downloaded 13 times
Last edited by juozas on Fri Feb 05, 2021 11:53 am, edited 3 times in total.
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by xnview »

when you have the crash, the file is not the last file of folder?
Pierre.
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by juozas »

The file that is being moved most times is the first, also sorted by date (newest is last), don't happen all the time, triggers randomly after repeatedly moving files, some times with delay during move before the crash.

Edit: Doing some more testing a segfault in MyDirModelThread thread triggered by doing same repetitive tasks as before, no full screen mode was used, same thread as in my previous full gdb backtrace, with full log attached.
Edit2: Some times crash happens during the first move of any file right after app start, with no files moved before, instant crash, super annoying.
Attachments
segfault.txt.gz
Terminal output log of xnview running under gdb, ending with segfault in thread MyDirModelThrea (name truncated), gzip'ed
(57.65 KiB) Downloaded 12 times
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.90 Linux: Crash moving files while in view mode

Post by xnview »

I think that it's this bug
Pierre.
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.98.1 Linux: Crash moving files while in view mode

Post by xnview »

This problem is supposed to be fixed in XnView MP 0.98.2. Please check and confirm the bug fix here.
Pierre.
User avatar
juozas
Posts: 35
Joined: Sun Sep 27, 2009 11:42 am
Location: Lithuania
Contact:

Re: 0.98.1 Linux: Crash moving files while in view mode

Post by juozas »

Works good so far, no crash; btw had to check the home page manually to download the package as the updater would not see the new version, it would appear that the program was up to date when using it.
Сделано в СССР
User avatar
xnview
Author of XnView
Posts: 43326
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: 0.98.1 Linux: Crash moving files while in view mode

Post by xnview »

juozas wrote: Wed Feb 24, 2021 6:56 am Works good so far, no crash; btw had to check the home page manually to download the package as the updater would not see the new version, it would appear that the program was up to date when using it.
The version is posted some days in the forum before to update information for all users
Pierre.
Post Reply