easymodo / qimgv

Image viewer. Fast, easy to use. Optional video support.
GNU General Public License v3.0
2.42k stars 169 forks source link

qimgv crashed when going to the next image #445

Open glaubersm opened 1 year ago

glaubersm commented 1 year ago

Hi I use qimgv 1.0.2-2 on Arch Linux.

I opened an image located in a folder with several images, I was going to the next images by pressing the right arrow, qimgv crashed at some point.

Here is the backtrace generated with gdb:

Thread 9 (Thread 0x7f4a8a9936c0 (LWP 22384)):
#0  0x00007f4ac71b3b94 in ?? () from /usr/lib/libopencv_imgproc.so.406
#1  0x00007f4ac71bdf00 in ?? () from /usr/lib/libopencv_imgproc.so.406
#2  0x00007f4ac449468e in ?? () from /usr/lib/libopencv_core.so.406
#3  0x00007f4ac448cc4b in ?? () from /usr/lib/libopencv_core.so.406
#4  0x00007f4ac44a0247 in ?? () from /usr/lib/libopencv_core.so.406
#5  0x00007f4ac407f48b in ?? () from /usr/lib/libtbb.so.12
#6  0x00007f4ac4081169 in ?? () from /usr/lib/libtbb.so.12
#7  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#8  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 8 (Thread 0x7f4aa69556c0 (LWP 22381)):
#0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4aa6954c20, nfds=nfds@entry=1, timeout=timeout@entry=300) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x0000562f1292208d in poll (__timeout=300, __nfds=1, __fds=0x7f4aa6954c20) at /usr/include/bits/poll2.h:39
#2  LinuxWorker::run (this=0x562f133f5050) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp:44
#3  0x00007f4ac5abda51 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#4  doActivate<false> (sender=0x562f133f5070, signal_index=3, argv=0x7f4aa6954d60) at kernel/qobject.cpp:3919
#5  0x00007f4ac58e241f in QThread::started (this=this@entry=0x562f133f5070, _t1=...) at .moc/moc_qthread.cpp:163
#6  0x00007f4ac58e42d1 in QThreadPrivate::start (arg=0x562f133f5070) at thread/qthread_unix.cpp:325
#7  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#8  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 7 (Thread 0x7f4a8bdff6c0 (LWP 22383)):
#0  0x00007f4ac71b3b1f in ?? () from /usr/lib/libopencv_imgproc.so.406
#1  0x00007f4ac71bdf00 in ?? () from /usr/lib/libopencv_imgproc.so.406
#2  0x00007f4ac449468e in ?? () from /usr/lib/libopencv_core.so.406
#3  0x00007f4ac448cc4b in ?? () from /usr/lib/libopencv_core.so.406
#4  0x00007f4ac44a0247 in ?? () from /usr/lib/libopencv_core.so.406
#5  0x00007f4ac40871b3 in ?? () from /usr/lib/libtbb.so.12
#6  0x00007f4ac44a011d in ?? () from /usr/lib/libopencv_core.so.406
#7  0x00007f4ac4073ce1 in ?? () from /usr/lib/libtbb.so.12
#8  0x00007f4ac4494c0b in cv::parallel_for_(cv::Range const&, cv::ParallelLoopBody const&, double) () from /usr/lib/libopencv_core.so.406
#9  0x00007f4ac71be84e in void cv::opt_SSE4_1::GaussianBlurFixedPoint<unsigned short>(cv::Mat const&, cv::Mat&, unsigned short const*, int, unsigned short const*, int, int) () from /usr/lib/libopencv_imgproc.so.406
#10 0x00007f4ac70d9fcb in cv::GaussianBlur(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int) () from /usr/lib/libopencv_imgproc.so.406
#11 0x0000562f129b2640 in ImageLib::scaled_CV (source=std::shared_ptr<const QImage> (use count 3, weak count 0) = {...}, destSize=..., filter=<optimized out>, sharpen=<optimized out>) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/utils/imagelib.cpp:199
#12 0x0000562f129b2958 in ImageLib::scaled (source=std::shared_ptr<const QImage> (use count 3, weak count 0) = {...}, destSize=..., filter=filter@entry=QI_FILTER_CV_CUBIC) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/utils/imagelib.cpp:150
#13 0x0000562f1290ba22 in ScalerRunnable::run (this=0x562f133ac110) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/scaler/scalerrunnable.cpp:20
#14 0x00007f4ac58e8211 in QThreadPoolThread::run (this=0x562f133d54e0) at thread/qthreadpool.cpp:100
#15 0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f133d54e0) at thread/qthread_unix.cpp:330
#16 0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#17 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 6 (Thread 0x7f4aa71566c0 (LWP 22378)):
#0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x562f1321bc68) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x562f1321bc68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f4ac529c51f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x562f1321bc68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f4ac529ecd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x562f1321bc18, cond=0x562f1321bc40) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x562f1321bc40, mutex=0x562f1321bc18) at pthread_cond_wait.c:618
#5  0x00007f4aae70799e in cnd_wait () at ../mesa-22.2.3/src/c11/impl/threads_posix.c:135
#6  0x00007f4aae6baf8c in util_queue_thread_func () at ../mesa-22.2.3/src/util/u_queue.c:287
#7  0x00007f4aae7078cc in impl_thrd_routine () at ../mesa-22.2.3/src/c11/impl/threads_posix.c:67
#8  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#9  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 5 (Thread 0x7f4abc9df6c0 (LWP 22377)):
#0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4abc9ded30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4abff9bcdd in poll (__timeout=-1, __nfds=2, __fds=0x7f4abc9ded30) at /usr/include/bits/poll2.h:39
#2  QtWaylandClient::EventThread::run (this=0x562f13200e00) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:208
#3  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f13200e00) at thread/qthread_unix.cpp:330
#4  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#5  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 4 (Thread 0x7f4abd1e06c0 (LWP 22376)):
#0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4abd1dfd30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4abff9bcdd in poll (__timeout=-1, __nfds=2, __fds=0x7f4abd1dfd30) at /usr/include/bits/poll2.h:39
#2  QtWaylandClient::EventThread::run (this=0x562f131fd0f0) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:208
#3  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f131fd0f0) at thread/qthread_unix.cpp:330
#4  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#5  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 3 (Thread 0x7f4ac3d31840 (LWP 22374)):
#0  0x00007f4ac53140bf in __GI___poll (fds=0x562f13445130, nfds=1, timeout=56) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4ac396d1ff in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x562f13445130, timeout=<optimized out>, context=0x7f4ab8005010) at ../glib/glib/gmain.c:4543
#2  g_main_context_iterate.constprop.0 (context=0x7f4ab8005010, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4233
#3  0x00007f4ac3915132 in g_main_context_iteration (context=0x7f4ab8005010, may_block=1) at ../glib/glib/gmain.c:4303
#4  0x00007f4ac5ad7c4c in QEventDispatcherGlib::processEvents (this=0x562f131db3e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f4ac5a8573c in QEventLoop::exec (this=0x7fff2f3ee180, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007f4ac5a90269 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f4ac5f3a112 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#8  0x00007f4ac6776f2a in QApplication::exec () at kernel/qapplication.cpp:2829
#9  0x0000562f128a22bd in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/main.cpp:167

Thread 2 (Thread 0x7f4abfa996c0 (LWP 22375)):
#0  0x00007f4ac53140bf in __GI___poll (fds=0x7f4ab80053e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4ac396d1ff in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f4ab80053e0, timeout=<optimized out>, context=0x7f4ab8001cf0) at ../glib/glib/gmain.c:4543
#2  g_main_context_iterate.constprop.0 (context=0x7f4ab8001cf0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4233
#3  0x00007f4ac3915132 in g_main_context_iteration (context=0x7f4ab8001cf0, may_block=1) at ../glib/glib/gmain.c:4303
#4  0x00007f4ac5ad7c4c in QEventDispatcherGlib::processEvents (this=0x7f4ab8000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f4ac5a8573c in QEventLoop::exec (this=0x7f4abfa98d10, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007f4ac58e721f in QThread::exec (this=this@entry=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f4abfb55cba in QDBusConnectionManager::run (this=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qt5-base/qtbase/src/dbus/qdbusconnection.cpp:179
#8  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330
#9  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#10 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 1 (Thread 0x7f4aa61546c0 (LWP 22382)):
#0  std::__atomic_base<QObjectPrivate::Connection*>::load (__m=std::memory_order_relaxed, this=0x20) at /usr/include/c++/12.2.0/atomic:578
#1  std::atomic<QObjectPrivate::Connection*>::load (__m=std::memory_order_relaxed, this=0x20) at /usr/include/c++/12.2.0/atomic:579
#2  QAtomicOps<QObjectPrivate::Connection*>::loadRelaxed<QObjectPrivate::Connection*> (_q_value=<error reading variable: Cannot access memory at address 0x20>) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:239
#3  QBasicAtomicPointer<QObjectPrivate::Connection>::loadRelaxed (this=0x20) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:248
#4  QObjectPrivate::ConnectionData::cleanOrphanedConnections (lockPolicy=QObjectPrivate::ConnectionData::NeedToLock, sender=0x562f133ff7d0, this=0x0) at kernel/qobject_p.h:292
#5  doActivate<false> (sender=0x562f133ff7d0, signal_index=3, argv=0x7f4aa6153c80) at kernel/qobject.cpp:3961
#6  0x0000562f128a5ebc in LoaderRunnable::finished (this=this@entry=0x562f133ff7d0, _t1=std::shared_ptr<Image> (use count 3, weak count 0) = {...}, _t2=...) at /usr/src/debug/qimgv/qimgv-1.0.2/build/qimgv/qimgv_autogen/NCIJ6LDRA3/moc_loaderrunnable.cpp:146
#7  0x0000562f12909a40 in LoaderRunnable::run (this=0x562f133ff7d0) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/loader/loaderrunnable.cpp:13
#8  0x00007f4ac58e8211 in QThreadPoolThread::run (this=0x562f134016e0) at thread/qthreadpool.cpp:100
#9  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f134016e0) at thread/qthread_unix.cpp:330
#10 0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
#11 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
easymodo commented 1 year ago

install qimgv-git from aur