https://bugs.kde.org/show_bug.cgi?id=480401

            Bug ID: 480401
           Summary: Quickly switching through images in Gwenview can cause
                    it to crash.
    Classification: Applications
           Product: gwenview
           Version: 23.08.4
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: gwenview-bugs-n...@kde.org
          Reporter: damian.hoes...@gmail.com
  Target Milestone: ---

Application: gwenview (23.08.4)

Qt Version: 5.15.12
Frameworks Version: 5.114.0
Operating System: Linux 6.7.1-zen1-1-zen x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.27.10 [KCrashBackend]

-- Information about the crash:
Images were pretty standard JPEG images, no insane resolution. On a Btrfs RAID5
array connected over USB. There was high load on the volume when the issue
occured, and I could not reproduce the issue a couple minutes later.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#6  0x00007bf48751a8df in  () at /usr/lib/libjxl.so.0.9
#7  0x00007bf4875e61f0 in JxlDecoderGetColorAsEncodedProfile () at
/usr/lib/libjxl.so.0.9
#8  0x00007bf4982826d9 in QJpegXLHandler::countALLFrames()
(this=0x7bf448013b20) at
/usr/src/debug/kimageformats5/kimageformats-5.114.0/src/imageformats/jxl.cpp:270
#9  0x00007bf498282de1 in QJpegXLHandler::ensureALLCounted() const
(this=<optimized out>) at
/usr/src/debug/kimageformats5/kimageformats-5.114.0/src/imageformats/jxl.cpp:104
#10 0x00007bf4982833fd in QJpegXLHandler::read(QImage*) (this=0x7bf448013b20,
image=0x7bf4759ffa50) at
/usr/src/debug/kimageformats5/kimageformats-5.114.0/src/imageformats/jxl.cpp:436
#11 0x00007bf4a81114ee in QImageReader::read(QImage*)
(this=this@entry=0x7bf4759ffae0, image=image@entry=0x7bf4759ffa50) at
image/qimagereader.cpp:1290
#12 0x00007bf4a811391a in QImageReader::read() (this=this@entry=0x7bf4759ffae0)
at image/qimagereader.cpp:1231
#13 0x00007bf4a9b5b7f1 in Gwenview::LoadingDocumentImplPrivate::loadMetaInfo()
(this=0x5fe38abf75f0) at
/usr/src/debug/gwenview/gwenview-23.08.4/lib/document/loadingdocumentimpl.cpp:295
#14 0x00007bf4a9b54c04 in QtConcurrent::StoredMemberFunctionPointerCall0<bool,
Gwenview::LoadingDocumentImplPrivate>::runFunctor() (this=0x5fe38aa1d5b0) at
/usr/include/qt/QtConcurrent/qtconcurrentstoredfunctioncall.h:187
#15 QtConcurrent::RunFunctionTask<bool>::run() (this=0x5fe38aa1d5b0) at
/usr/include/qt/QtConcurrent/qtconcurrentrunbase.h:114
#16 0x00007bf4a797e541 in QThreadPoolThread::run() (this=0x5fe38aa0a070) at
thread/qthreadpool.cpp:100
#17 0x00007bf4a797979a in operator() (__closure=<optimized out>) at
thread/qthread_unix.cpp:350
#18 (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=<optimized out>) at thread/qthread_unix.cpp:287
#19 QThreadPrivate::start(void*) (arg=0x5fe38aa0a070) at
thread/qthread_unix.cpp:310
#20 0x00007bf4a748e9eb in start_thread (arg=<optimized out>) at
pthread_create.c:444
#21 0x00007bf4a75127cc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7bf4860006c0 (LWP 408101) "gwenview"):
#1  __pselect (nfds=nfds@entry=5, readfds=readfds@entry=0x7bf485ff7b60,
writefds=writefds@entry=0x0, exceptfds=exceptfds@entry=0x0, timeout=<optimized
out>, timeout@entry=0x7bf485ff7b50, sigmask=sigmask@entry=0x0) at
../sysdeps/unix/sysv/linux/pselect.c:56
#2  0x00007bf4a27356f9 in usbmuxd_listen_inotify () at
/usr/src/debug/libusbmuxd/libusbmuxd-2.0.2/src/libusbmuxd.c:923
#3  0x00007bf4a27363cc in usbmuxd_listen () at
/usr/src/debug/libusbmuxd/libusbmuxd-2.0.2/src/libusbmuxd.c:979
#4  device_monitor (data=<optimized out>) at
/usr/src/debug/libusbmuxd/libusbmuxd-2.0.2/src/libusbmuxd.c:1107
#5  0x00007bf4a748e9eb in start_thread (arg=<optimized out>) at
pthread_create.c:444
#6  0x00007bf4a75127cc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7bf486c006c0 (LWP 408100) "Gwenview::Thumb"):
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5fe38a16b550,
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  0x00007bf4a748b52f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x5fe38a16b550, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#3  0x00007bf4a748dd40 in __pthread_cond_wait_common (abstime=0x0, clockid=0,
mutex=0x5fe38a16b500, cond=0x5fe38a16b528) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x5fe38a16b528, mutex=0x5fe38a16b500) at
pthread_cond_wait.c:618
#5  0x00007bf4a7981524 in QWaitConditionPrivate::wait(QDeadlineTimer)
(deadline=..., this=0x5fe38a16b500) at thread/qwaitcondition_unix.cpp:146
#6  QWaitCondition::wait(QMutex*, QDeadlineTimer)
(this=this@entry=0x5fe38a13b8e0, mutex=mutex@entry=0x5fe38a13b8d8,
deadline=...) at thread/qwaitcondition_unix.cpp:225
#7  0x00007bf4a9babe36 in Gwenview::ThumbnailGenerator::run()
(this=0x5fe38a13b870) at
/usr/src/debug/gwenview/gwenview-23.08.4/lib/thumbnailprovider/thumbnailgenerator.cpp:265
#8  0x00007bf4a797979a in operator() (__closure=<optimized out>) at
thread/qthread_unix.cpp:350
#9  (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=<optimized out>) at thread/qthread_unix.cpp:287
#10 QThreadPrivate::start(void*) (arg=0x5fe38a13b870) at
thread/qthread_unix.cpp:310
#11 0x00007bf4a748e9eb in start_thread (arg=<optimized out>) at
pthread_create.c:444
#12 0x00007bf4a75127cc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7bf4a18006c0 (LWP 408090) "QDBusConnection"):
#1  0x00007bf4a55742f6 in g_main_context_poll_unlocked (priority=2147483647,
n_fds=1, fds=0x7bf49c00f130, timeout=<optimized out>, context=0x7bf49c000c50)
at ../glib/glib/gmain.c:4653
#2  g_main_context_iterate_unlocked.isra.0
(context=context@entry=0x7bf49c000c50, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4344
#3  0x00007bf4a5514162 in g_main_context_iteration (context=0x7bf49c000c50,
may_block=1) at ../glib/glib/gmain.c:4414
#4  0x00007bf4a7b70d0c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7bf49c000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007bf4a7b20c04 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7bf4a17ffbd0,
flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007bf4a797d576 in QThread::exec() (this=this@entry=0x7bf4a7e3e660
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007bf4a7dd6a9a in QDBusConnectionManager::run() (this=0x7bf4a7e3e660
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
/usr/src/debug/qt5-base/qtbase/src/dbus/qdbusconnection.cpp:179
#8  0x00007bf4a797979a in operator() (__closure=<optimized out>) at
thread/qthread_unix.cpp:350
#9  (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=<optimized out>) at thread/qthread_unix.cpp:287
#10 QThreadPrivate::start(void*) (arg=0x7bf4a7e3e660 <(anonymous
namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
thread/qthread_unix.cpp:310
#11 0x00007bf4a748e9eb in start_thread (arg=<optimized out>) at
pthread_create.c:444
#12 0x00007bf4a75127cc in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7bf4a1eb6e40 (LWP 408089) "gwenview"):
#1  0x00007bf4a7975b3c in QtLinuxFutex::_q_futex(int*, int, int, unsigned long
long, int*, int) (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0,
addr=<optimized out>, addr=<optimized out>, op=<optimized out>, val=<optimized
out>, val2=<optimized out>, addr2=<optimized out>, val3=<optimized out>) at
thread/qfutex_p.h:114
#2  QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int>
>(QBasicAtomicInteger<unsigned int>&, QBasicAtomicInteger<unsigned int>::Type)
(expectedValue=<optimized out>, futex=<optimized out>) at thread/qfutex_p.h:133
#3  futexSemaphoreTryAcquire_loop<false>(QBasicAtomicInteger<unsigned long
long>&, unsigned long long, unsigned long long, int) (timeout=-1,
nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:219
#4  futexSemaphoreTryAcquire<false>(QBasicAtomicInteger<unsigned long long>&,
int, int) (timeout=-1, n=<optimized out>, u=...) at thread/qsemaphore.cpp:262
#5  QSemaphore::acquire(int) (this=0x7ffdde44ad80, n=<optimized out>) at
thread/qsemaphore.cpp:326
#6  0x00007bf4a7b56f36 in doActivate<false>(QObject*, int, void**)
(sender=0x5fe38a1120f0, signal_index=0, argv=0x7ffdde44ae00) at
kernel/qobject.cpp:3906
#7  0x00007bf4a7b57224 in QObject::destroyed(QObject*) (this=<optimized out>,
_t1=<optimized out>) at .moc/moc_qobject.cpp:219
#8  0x00007bf4a7b4d33c in QObject::~QObject() (this=0x5fe38a1120f0,
this=<optimized out>) at kernel/qobject.cpp:1010
#9  0x00007bf4a7e1ba5e in QDBusServiceWatcher::~QDBusServiceWatcher()
(this=0x5fe38a1120f0, this=<optimized out>) at
/usr/src/debug/qt5-base/qtbase/src/dbus/qdbusservicewatcher.cpp:260
#10 0x00007bf4a7b4cbad in QObjectPrivate::deleteChildren()
(this=this@entry=0x5fe38a111ef0) at kernel/qobject.cpp:2137
#11 0x00007bf4a7b4d329 in QObject::~QObject() (this=this@entry=0x5fe38a111ed0,
this=<optimized out>) at kernel/qobject.cpp:1115
#12 0x00007bf4a7dec468 in
QDBusAbstractInterfaceBase::~QDBusAbstractInterfaceBase() (this=0x5fe38a111ed0,
this=<optimized out>) at
/usr/src/debug/qt5-base/qtbase/src/dbus/qdbusabstractinterface.h:68
#13 0x00007bf499a3f248 in
OrgKdeKWinTabletModeManagerInterface::~OrgKdeKWinTabletModeManagerInterface()
(this=0x5fe38a111ed0, this=<optimized out>) at
/usr/src/debug/kirigami2/build/src/libkirigami/tabletmodemanager_interface.cpp:25
#14
OrgKdeKWinTabletModeManagerInterface::~OrgKdeKWinTabletModeManagerInterface()
(this=0x5fe38a111ed0, this=<optimized out>) at
/usr/src/debug/kirigami2/build/src/libkirigami/tabletmodemanager_interface.cpp:25
#15 0x00007bf4a7b4cbad in QObjectPrivate::deleteChildren()
(this=this@entry=0x5fe38a111e40) at kernel/qobject.cpp:2137
#16 0x00007bf4a7b4d329 in QObject::~QObject() (this=<optimized out>,
this=<optimized out>) at kernel/qobject.cpp:1115
#17 0x00007bf499a3c7ce in Kirigami::(anonymous
namespace)::Q_QGS_privateTabletModeWatcherSelf::innerFunction()::Holder::~Holder()
() at
/usr/src/debug/kirigami2/kirigami2-5.114.0/src/libkirigami/tabletmodewatcher.cpp:21
#18 0x00007bf4a7442cc6 in __run_exit_handlers (status=status@entry=1,
listp=0x7bf4a75da680 <__exit_funcs>,
run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at
exit.c:111
#19 0x00007bf4a7442e10 in __GI_exit (status=status@entry=1) at exit.c:141
#20 0x00007bf4a1a31066 in
QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x5fe389edadc0, flags=...) at
/usr/src/debug/qt5-base/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1051
#21 0x00007bf4a1a61558 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>) at
/usr/src/debug/qt5-base/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:103
#22 0x00007bf4a5515f69 in g_main_dispatch (context=0x7bf49c000ec0) at
../glib/glib/gmain.c:3476
#23 0x00007bf4a55743a7 in g_main_context_dispatch_unlocked
(context=0x7bf49c000ec0) at ../glib/glib/gmain.c:4284
#24 g_main_context_iterate_unlocked.isra.0
(context=context@entry=0x7bf49c000ec0, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#25 0x00007bf4a5514162 in g_main_context_iteration (context=0x7bf49c000ec0,
may_block=1) at ../glib/glib/gmain.c:4414
#26 0x00007bf4a7b70d0c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x5fe389f8db30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007bf4a7b20c04 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffdde44b400, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007bf4a7b220a3 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007bf4a8093f12 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1870
#30 0x00007bf4a87b8cda in QApplication::exec() () at
kernel/qapplication.cpp:2832
#31 0x00005fe389beba49 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/gwenview/gwenview-23.08.4/app/main.cpp:213
Warning: the current language does not match this frame.
[Inferior 1 (process 408089) detached]

Reported using DrKonqi

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to