luspi / photoqt

PhotoQt Image Viewer (mirror repo) - https://photoqt.org
GNU General Public License v2.0
51 stars 12 forks source link

photoqt 2.5 crashes after click on 'Confinue' button of 'photoqt updated' dialog #12

Closed glaubersm closed 2 years ago

glaubersm commented 2 years ago

Hi I have photoqt 2.5 on Arch Linux, installed from AUR. When I open photoqt, 'photoqt update' dialog shows up, I click on 'Continue' button and then photoqt crashes.

Here is the backtrace of the crash:


Thread 7 (Thread 0x7fec60e7c640 (LWP 1897)):
#0  0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1  0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2  0x00007fec75414cfc in QWaitConditionPrivate::wait (deadline=..., deadline=..., this=0x55e779592150) at thread/qwaitcondition_unix.cpp:146
#3  QWaitCondition::wait (this=this@entry=0x55e779a90d98, mutex=mutex@entry=0x55e779a90d90, deadline=...) at thread/qwaitcondition_unix.cpp:225
#4  0x00007fec779aebef in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x55e779a90d88) at /usr/include/qt/QtCore/qdeadlinetimer.h:68
#5  QSGRenderThread::processEventsAndWaitForMore (this=0x55e779a90cf0) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:936
#6  QSGRenderThread::run (this=0x55e779a90cf0) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1053
#7  0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e779a90cf0) at thread/qthread_unix.cpp:331
#8  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#9  0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 6 (Thread 0x7fec62573640 (LWP 1896)):
#0  0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1  0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2  0x00007fec626341fc in cnd_wait () at ../mesa-22.0.1/include/c11/threads_posix.h:155
#3  util_queue_thread_func () at ../mesa-22.0.1/src/util/u_queue.c:294
#4  0x00007fec6262d88c in impl_thrd_routine () at ../mesa-22.0.1/include/c11/threads_posix.h:87
#5  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6  0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7fec6ace3640 (LWP 1892)):
#0  0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1  0x00007fec738bf976 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fec640029e0, timeout=<optimized out>, context=0x7fec64000c30) at ../glib/glib/gmain.c:4516
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x7fec64000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
#3  0x00007fec738666c5 in g_main_context_iteration (context=0x7fec64000c30, may_block=1) at ../glib/glib/gmain.c:4276
#4  0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x7fec64000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fec755ad88b in QEventLoop::exec (this=0x7fec6ace2bd0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007fec75410a56 in QThread::exec (this=this@entry=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fec775b33a9 in QDBusConnectionManager::run (this=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qtbase/src/dbus/qdbusconnection.cpp:179
#8  0x00007fec7540d8cc in QThreadPrivate::start (arg=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:331
#9  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#10 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7fec6894a640 (LWP 1894)):
#0  0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1  0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2  0x00007fec626341fc in cnd_wait () at ../mesa-22.0.1/include/c11/threads_posix.h:155
#3  util_queue_thread_func () at ../mesa-22.0.1/src/util/u_queue.c:294
#4  0x00007fec6262d88c in impl_thrd_routine () at ../mesa-22.0.1/include/c11/threads_posix.h:87
#5  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6  0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7fec6a355640 (LWP 1893)):
#0  0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1  0x00007fec738bf976 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fec5c0025e0, timeout=<optimized out>, context=0x7fec5c000c30) at ../glib/glib/gmain.c:4516
#2  g_main_context_iterate.constprop.0 (context=context@entry=0x7fec5c000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
#3  0x00007fec738666c5 in g_main_context_iteration (context=0x7fec5c000c30, may_block=1) at ../glib/glib/gmain.c:4276
#4  0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x7fec5c000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fec755ad88b in QEventLoop::exec (this=0x7fec6a354be0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007fec75410a56 in QThread::exec (this=this@entry=0x55e77957c1e0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fec769a9d00 in QQmlThreadPrivate::run (this=0x55e77957c1e0) at /usr/src/debug/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:155
#8  0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e77957c1e0) at thread/qthread_unix.cpp:331
#9  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#10 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7fec70cfb640 (LWP 1891)):
#0  0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1  0x00007fec736b463b in ?? () from /usr/lib/libxcb.so.1
#2  0x00007fec736b637b in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007fec70e74b12 in QXcbEventQueue::run (this=0x55e779474db0) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventqueue.cpp:228
#4  0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e779474db0) at thread/qthread_unix.cpp:331
#5  0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6  0x00007fec74f06584 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7fec71272d80 (LWP 1890)):
#0  0x00007fec74e8334c in __pthread_kill_implementation () from /usr/lib/libc.so.6
#1  0x00007fec74e364b8 in raise () from /usr/lib/libc.so.6
#2  0x00007fec74e20534 in abort () from /usr/lib/libc.so.6
#3  0x00007fec74e2045c in __assert_fail_base.cold () from /usr/lib/libc.so.6
#4  0x00007fec74e2f116 in __assert_fail () from /usr/lib/libc.so.6
#5  0x00007fec745e0e7f in LockSemaphoreInfo () from /usr/lib/libGraphicsMagick.so.3
#6  0x00007fec745b0238 in GetMagickInfo () from /usr/lib/libGraphicsMagick.so.3
#7  0x00007fec76f6fb42 in Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libGraphicsMagick++.so.12
#8  0x000055e7780aed4a in PQImageFormats::readFromDatabase() ()
#9  0x000055e7780b0815 in PQImageFormats::PQImageFormats() ()
#10 0x000055e77815f48b in PQStartup::performChecksAndMigrations() ()
#11 0x000055e778091e3e in PQStartup::qt_metacall(QMetaObject::Call, int, void**) ()
#12 0x00007fec76960396 in QQmlObjectOrGadget::metacall (this=0x7ffdca597f90, type=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:51
#13 0x00007fec768621a8 in CallMethod (callType=QMetaObject::InvokeMetaMethod, callArgs=0x7fec69716598, engine=0x55e77956d580, argTypes=0x0, argCount=0, returnType=43, index=<optimized out>, object=...) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1318
#14 CallPrecise (object=..., data=..., engine=engine@entry=0x55e77956d580, callArgs=callArgs@entry=0x7fec69716598, callType=callType@entry=QMetaObject::InvokeMetaMethod) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1572
#15 0x00007fec76864182 in QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2130
#16 0x00007fec76873b5d in QV4::Moth::VME::interpret (frame=0x7ffdca5983a0, engine=0x55e77956d580, code=0x7fec69716550 " \270\025i\354\177") at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:757
#17 0x00007fec7687783f in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:466
#18 0x00007fec768194ce in QV4::Function::call (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4function.cpp:69
#19 0x00007fec76977f52 in QQmlJavaScriptExpression::evaluate (this=0x55e7795cca00, callData=0x7fec697164d8, isUndefined=0x0) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:212
#20 0x00007fec76932243 in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:224
#21 0x00007fec76933d0c in QQmlBoundSignal_callback (a=0x7ffdca59a040, e=0x55e7796d24e0) at ../../include/QtQml/5.15.3/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#22 QQmlBoundSignal_callback (e=0x55e7796d24e0, a=0x7ffdca59a040) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:341
#23 0x00007fec76957af5 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7ffdca59a040) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
#24 0x00007fec755e5fbe in doActivate<false> (sender=0x55e7795a4e40, signal_index=32, argv=0x7ffdca59a040) at kernel/qobject.cpp:3778
#25 0x00007fec77a0f787 in QQuickWindow::closing (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qquickwindow.cpp:583
#26 0x00007fec77a0581a in QQuickWindow::event (this=0x55e7795a4e40, e=0x7ffdca59a180) at /usr/src/debug/qtdeclarative/src/quick/items/qquickwindow.cpp:1836
#27 0x00007fec761a01c6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55e7795a4e40, e=0x7ffdca59a180) at kernel/qapplication.cpp:3637
#28 0x00007fec755b55aa in QCoreApplication::notifyInternal2 (receiver=0x55e7795a4e40, event=0x7ffdca59a180) at kernel/qcoreapplication.cpp:1064
#29 0x00007fec75afe97f in QGuiApplicationPrivate::processCloseEvent (e=0x7fec6c008ab0) at kernel/qguiapplication.cpp:2639
#30 QGuiApplicationPrivate::processCloseEvent (e=0x7fec6c008ab0) at kernel/qguiapplication.cpp:2629
#31 0x00007fec75ae86e5 in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#32 0x00007fec70e76f60 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105
#33 0x00007fec73869163 in g_main_dispatch (context=0x7fec6c005010) at ../glib/glib/gmain.c:3417
#34 g_main_context_dispatch (context=0x7fec6c005010) at ../glib/glib/gmain.c:4135
#35 0x00007fec738bf9e9 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fec6c005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#36 0x00007fec738666c5 in g_main_context_iteration (context=0x7fec6c005010, may_block=1) at ../glib/glib/gmain.c:4276
#37 0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x55e7795521c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#38 0x00007fec755ad88b in QEventLoop::exec (this=0x7ffdca59a430, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#39 0x00007fec755b8fd7 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#40 0x000055e778087a46 in main ()
luspi commented 2 years ago

Yes, unfortunately there was a bug in v2.5 that only appeared on update when GraphicsMagick was enabled during compile time. By default PhotoQt uses ImageMagick by now, but the Arch Linux package still defaults to GraphicsMagick (which used to be the only available option).

There are two things that can be done when facing this issue:

  1. You can remove the folder ~/.config/PhotoQt/ which will make PhotoQt think that this is a new install and the faulty code wont be called. The cost of this is that you will lose your settings and shortcuts.
  2. You can wait until Thursday or Friday. v2.6 is about ready to be released (I'm doing some final testing at the moment), likely on Thursday, at the latest on Friday. v2.6 will not suffer from this bug.

My apologies for this bug, i should have caught this before releasing v2.5. As a consequence I added a bullet point to my pre-release checklist to make sure the update works with both ImageMagick and GraphicsMagick.

glaubersm commented 2 years ago

Don't worry. Thank you for your detailed reply and your great image viewer. :)

luspi commented 2 years ago

v2.6 is now released and should be available in the AUR already.