0.90 Linux: Crash moving files while in view mode

*** Please report new bugs here! ***

Moderator: Dreamer

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

0.90 Linux: Crash moving files while in view mode

Post by juozas » Sun Aug 19, 2018 9:11 am

XnView: MP 0.85 - 64 bit
OS: Ubuntu Linux 18.04.1 LTS (Codename bionic)
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. Move files one by one, delete some, repeat untill you get 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 2 times
Expected behaviour: No crash while moving files
Сделано в СССР

User avatar
xnview
Author of XnView
Posts: 30024
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 » Wed Sep 19, 2018 10:42 am

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: 13
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 » Wed Sep 19, 2018 5:34 pm

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: 13
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 » 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. 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: 30024
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 » Sun Oct 14, 2018 11:05 am

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: 13
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 » Sun Oct 14, 2018 3:22 pm

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: 30024
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 » Mon Oct 15, 2018 5:25 am

the problem happens always with a path that contains spaces and non/ascii?
Pierre.

User avatar
juozas
Posts: 13
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 » Mon Oct 15, 2018 8:17 am

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.
Сделано в СССР

Post Reply