Summary: | Ark crashes if you close it while decompressing a file. | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Tony <jodr666> |
Component: | general | Assignee: | Elvis Angelaccio <elvis.angelaccio> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bugseforuns, ddrambler, justin.zobel, rthomsen6 |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=446531 | ||
Latest Commit: | https://invent.kde.org/utilities/ark/commit/a41e69b30cc07dd758849f8685d322150459e4f1 | Version Fixed In: | 20.12.2 |
Sentry Crash Report: | |||
Attachments: |
Evidence
New crash information added by DrKonqi |
Description
Tony
2019-07-22 06:08:23 UTC
Created attachment 121672 [details]
Evidence
How to reproduce.
Created attachment 133312 [details]
New crash information added by DrKonqi
ark (21.03.70) using Qt 5.15.1
- What I was doing when the application crashed:
Same steps, open the compressed file, while it is decompressing close ark.
-- Backtrace (Reduced):
#4 QHashData::nextNode (node=node@entry=0x558e27e76390) at tools/qhash.cpp:591
#5 0x00007fac3295523b in QHash<KJob*, QHashDummyValue>::const_iterator::operator++ (this=<synthetic pointer>) at /usr/include/qt5/QtCore/qhash.h:425
#6 QSet<KJob*>::const_iterator::operator++ (this=<synthetic pointer>) at /usr/include/qt5/QtCore/qset.h:174
#7 JobTracker::~JobTracker (this=<optimized out>, this=<optimized out>) at /usr/src/debug/ark-20.11.70git.20201112T063430~003b4a45-ku.31.1.x86_64/part/jobtracker.cpp:41
#8 0x00007fac32955299 in JobTracker::~JobTracker (this=<optimized out>, this=<optimized out>) at /usr/src/debug/ark-20.11.70git.20201112T063430~003b4a45-ku.31.1.x86_64/part/jobtracker.cpp:44
Possible duplicates : 389017 414149 I'm able to replicate this. *** Bug 414149 has been marked as a duplicate of this bug. *** *** Bug 418676 has been marked as a duplicate of this bug. *** Git commit a41e69b30cc07dd758849f8685d322150459e4f1 by Elvis Angelaccio. Committed on 05/01/2021 at 21:03. Pushed by elvisangelaccio into branch 'release/20.12'. Fix crash after closing the window while loading a TAR archive A first problem was in LibarchivePlugin::list() not checking isInterruptionRequested() after the while loop. It was wrongly calling emitCorruptArchive() instead of aborting as requested. But according to the stacktrace, the actual crash seemed to be caused by the for() loop over qAsConst(m_jobs): #0 0x00007ffff5f6a023 in QHashData::nextNode(QHashData::Node*) () from /usr/lib/libQt5Core.so.5 #1 0x00007fffe1dcb2ec in QHash<KJob*, QHashDummyValue>::const_iterator::operator++ (this=0x7fffffffc4d0) at /usr/include/qt/QtCore/qhash.h:426 #2 0x00007fffe1dcadac in QSet<KJob*>::const_iterator::operator++ (this=0x7fffffffc4d0) at /usr/include/qt/QtCore/qset.h:174 #3 0x00007fffe1dca17e in JobTracker::~JobTracker (this=0x555555c319c0) at ../part/jobtracker.cpp:41 Porting to QSetIterator fixes the crash. FIXED-IN: 20.12.2 M +3 -1 part/jobtracker.cpp M +4 -0 plugins/libarchive/libarchiveplugin.cpp https://invent.kde.org/utilities/ark/commit/a41e69b30cc07dd758849f8685d322150459e4f1 I can reproduce this crash on Arch Linux running Ark 20.12.2 and on neon unstable using a .tar file containing +2k jpg files. But the crash does not occur consistently. Below you can see the backtrace generated on neon unstable. Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.21.80 KDE Frameworks Version: 5.79.0 Qt Version: 5.15.2 Graphics Platform: Wayland Application: Ark (ark), signal: Segmentation fault Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f257a9ca380 (LWP 3870))] [New LWP 3871] [New LWP 3872] [New LWP 3873] [New LWP 3874] [New LWP 3875] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f257e4f3aff in __GI___poll (fds=fds@entry=0x7ffd0beae0e8, nfds=nfds@entry=1, timeout=timeout@entry=1000) at ../sysdeps/unix/sysv/linux/poll.c:29 Thread 6 (Thread 0x7f2574919700 (LWP 3875)): #0 0x00007f257e4f3aff in __GI___poll (fds=0x7f255c005240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f257d03b18e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f255c005240, timeout=<optimized out>, context=0x7f255c000c20) at ../../../glib/gmain.c:4346 #2 g_main_context_iterate (context=context@entry=0x7f255c000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042 #3 0x00007f257d03b2c3 in g_main_context_iteration (context=0x7f255c000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108 #4 0x00007f257eabefbb in QEventDispatcherGlib::processEvents (this=0x7f255c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007f257ea631ab in QEventLoop::exec (this=this@entry=0x7f2574918cb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #6 0x00007f257e87da12 in QThread::exec (this=this@entry=0x7f257df36d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007f257deb2f4b in QDBusConnectionManager::run (this=0x7f257df36d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #8 0x00007f257e87ebac in QThreadPrivate::start (arg=0x7f257df36d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329 #9 0x00007f257d95c609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #10 0x00007f257e500293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 0x7f2576a74700 (LWP 3874)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56476783e2c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56476783e278, cond=0x56476783e2a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x56476783e2a0, mutex=0x56476783e278) at pthread_cond_wait.c:638 #3 0x00007f2578971e6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007f2578971a6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007f257d95c609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007f257e500293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 0x7f2577275700 (LWP 3873)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56476783e2c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56476783e278, cond=0x56476783e2a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x56476783e2a0, mutex=0x56476783e278) at pthread_cond_wait.c:638 #3 0x00007f2578971e6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007f2578971a6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007f257d95c609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007f257e500293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 0x7f2577a76700 (LWP 3872)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56476783e2c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56476783e278, cond=0x56476783e2a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x56476783e2a0, mutex=0x56476783e278) at pthread_cond_wait.c:638 #3 0x00007f2578971e6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007f2578971a6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007f257d95c609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007f257e500293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 0x7f2578277700 (LWP 3871)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56476783e2c8) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56476783e278, cond=0x56476783e2a0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x56476783e2a0, mutex=0x56476783e278) at pthread_cond_wait.c:638 #3 0x00007f2578971e6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #4 0x00007f2578971a6b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so #5 0x00007f257d95c609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007f257e500293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 0x7f257a9ca380 (LWP 3870)): [KCrash Handler] #6 QtWaylandClient::QWaylandWindow::decoration (this=0x0) at qwaylandwindow.cpp:854 #7 0x00007f257cc38d69 in QtWaylandClient::QWaylandShmBackingStore::windowDecoration (this=this@entry=0x564767eb23e0) at qwaylandshmbackingstore.cpp:363 #8 0x00007f257cc39756 in QtWaylandClient::QWaylandShmBackingStore::resize (this=this@entry=0x564767eb23e0, size=...) at qwaylandshmbackingstore.cpp:309 #9 0x00007f257cc39891 in QtWaylandClient::QWaylandShmBackingStore::ensureSize (this=this@entry=0x564767eb23e0) at qwaylandshmbackingstore.cpp:206 #10 0x00007f257cc398cd in QtWaylandClient::QWaylandShmBackingStore::beginPaint (this=this@entry=0x564767eb23e0, region=...) at qwaylandshmbackingstore.cpp:181 #11 0x00007f257f008058 in QBackingStore::beginPaint (this=0x564767ea44f0, region=...) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/kernel/qhighdpiscaling_p.h:203 #12 0x00007f257f54e300 in QWidgetRepaintManager::paintAndFlush (this=this@entry=0x564767eb24c0) at kernel/qwidgetrepaintmanager.cpp:976 #13 0x00007f257f54ef44 in QWidgetRepaintManager::sync (this=0x564767eb24c0) at kernel/qwidgetrepaintmanager.cpp:770 #14 0x00007f257f5786d5 in QWidgetPrivate::syncBackingStore (this=0x564767824000) at kernel/qwidget.cpp:1756 #15 0x00007f257f57f5fc in QWidget::event (this=this@entry=0x564767d0d9c0, event=event@entry=0x564767f26cb0) at kernel/qwidget.cpp:8964 #16 0x00007f257f6978c8 in QMainWindow::event (this=0x564767d0d9c0, event=0x564767f26cb0) at widgets/qmainwindow.cpp:1341 #17 0x00007f257fe3dc73 in KMainWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libKF5XmlGui.so.5 #18 0x00007f257fe8913b in KXmlGuiWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libKF5XmlGui.so.5 #19 0x00007f257f53bdc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x564767d0d9c0, e=0x564767f26cb0) at kernel/qapplication.cpp:3632 #20 0x00007f257f544bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156 #21 0x00007f257ea6469a in QCoreApplication::notifyInternal2 (receiver=0x564767d0d9c0, event=0x564767f26cb0) at ../../include/QtCore/5.15.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325 #22 0x00007f257ea66fa1 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5647677dad10) at kernel/qcoreapplication.cpp:1817 #23 0x00007f257eabf947 in postEventSourceDispatch (s=0x5647678533a0) at kernel/qeventdispatcher_glib.cpp:277 #24 0x00007f257d03af9d in g_main_dispatch (context=0x564767817050) at ../../../glib/gmain.c:3309 #25 g_main_context_dispatch (context=context@entry=0x564767817050) at ../../../glib/gmain.c:3974 #26 0x00007f257d03b220 in g_main_context_iterate (context=context@entry=0x564767817050, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047 #27 0x00007f257d03b2c3 in g_main_context_iteration (context=0x564767817050, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108 #28 0x00007f257eabefa2 in QEventDispatcherGlib::processEvents (this=0x564767853270, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #29 0x00007f257ea631ab in QEventLoop::exec (this=this@entry=0x7ffd0beaf440, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #30 0x00007f257ea6b354 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #31 0x0000564765e186e5 in ?? () #32 0x00007f257e4050b3 in __libc_start_main (main=0x564765e170d0, argc=2, argv=0x7ffd0beaf6d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd0beaf6c8) at ../csu/libc-start.c:308 #33 0x0000564765e198be in ?? () [Inferior 1 (process 3870) detached] ops, I think my crash is a different issue. At least the steps to reproduce are different, see bug 432891. Sorry for noise. |