Summary: | Ark does not properly stop an archive creation | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Gavin Westwood <kdebugs> |
Component: | general | Assignee: | Elvis Angelaccio <elvis.angelaccio> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | amrecio, elroy, elvis.angelaccio, erik6350, ezrik12, fraph24, gatoso, grawcho, guchy666, info.kalsan, jakubmusial, kazmafrost, kde, kdebugs, maral.afris, marsilisa, martin.ruessler, maxvanceffer, miedza, mikael79, morais.anderso, radistaneva, rakuco, renszarv07, salashomemail, shadow.to.root, stasnel, tjm1983, tohyf |
Priority: | HI | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/ark/074d52778f68c2b1456ba54633bace8e366667cb | Version Fixed In: | 16.08.0 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Gavin Westwood
2010-01-12 16:05:38 UTC
Are you sure this happened _because_ you're accessing/emptying Wastebin? How was Ark launched? Sorry, I've had so many crashes with Dolphin, and the message came up as I was emptying the Wastebin, I didn't look at it in enough detail and assumed that it was Dolphin, not Ark. What I had done with Ark was to launch it from a context menu to zip about 32GB of files, and then decided to cancel it. The error message took a little while to appear, so I had moved on to the Wastebin by that time, thus the confusion. I hope this is more helpful. :-) Thanks for the details, I'm marking the bug as NEW and changing its title. Possible related backtrace: Application: Ark (ark), signal: Aborted [Current thread is 1 (Thread 0xb5048920 (LWP 4003))] Thread 2 (Thread 0xb32efb70 (LWP 4029)): #0 0xb5424de6 in clock_gettime () from /lib/librt.so.1 #1 0xb5cc90ee in qt_gettime () at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qcore_unix.cpp:109 #2 0xb5ccfa55 in QTimerInfoList::updateCurrentTime (this=0x9bca3c4) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_unix.cpp:340 #3 0xb5ccfddd in QTimerInfoList::timerWait (this=0x9bca3c4, tm=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_unix.cpp:443 #4 0xb5ccc20b in timerSourcePrepareHelper (src=0x9bca390, timeout=0xb32ef0bc) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:136 #5 0xb5ccc426 in idleTimerSourcePrepare (source=0x9f86cf8, timeout=0xb32ef0bc) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:214 #6 0xb53a8470 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #7 0xb53a8811 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #8 0xb53a8d23 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #9 0xb5ccd59c in QEventDispatcherGlib::processEvents (this=0x9c13e00, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:414 #10 0xb5c92f8f in QEventLoop::processEvents (this=0xb32ef278, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #11 0xb5c930d4 in QEventLoop::exec (this=0xb32ef278, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:201 #12 0xb5b7d3e4 in QThread::exec (this=0xa0cad98) at /home/kubo/kde4/src/qt-copy/src/corelib/thread/qthread.cpp:487 #13 0xb76e4bf8 in Kerfuffle::ThreadExecution::run (this=0xa0cad98) at /home/kubo/kde4/src/kdeutils/ark/kerfuffle/threading.cpp:47 #14 0xb5b7fd1c in QThreadPrivate::start (arg=0xa0cad98) at /home/kubo/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:248 #15 0xb5ac78ac in start_thread () from /lib/libpthread.so.0 #16 0xb591101e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb5048920 (LWP 4003)): [KCrash Handler] #6 0xb76fe424 in __kernel_vsyscall () #7 0xb586d571 in raise () from /lib/libc.so.6 #8 0xb586ed72 in abort () from /lib/libc.so.6 #9 0xb5b74af3 in qt_message_output (msgType=QtFatalMsg, buf=0x9e37040 "ASSERT: \"QThread::currentThread() != QApplication::instance()->thread()\" in file /home/kubo/kde4/src/kdeutils/ark/kerfuffle/cliinterface.cpp, line 423") at /home/kubo/kde4/src/qt-copy/src/corelib/global/qglobal.cpp:2227 #10 0xb5b74cb5 in qt_message (msgType=QtFatalMsg, msg=0xb5d14094 "ASSERT: \"%s\" in file %s, line %d", ap=0xbfc07c14 "\024\234o\267\\\227o\267\247\001") at /home/kubo/kde4/src/qt-copy/src/corelib/global/qglobal.cpp:2273 #11 0xb5b750d3 in qFatal (msg=0xb5d14094 "ASSERT: \"%s\" in file %s, line %d") at /home/kubo/kde4/src/qt-copy/src/corelib/global/qglobal.cpp:2456 #12 0xb5b7468c in qt_assert (assertion=0xb76f9c14 "QThread::currentThread() != QApplication::instance()->thread()", file=0xb76f975c "/home/kubo/kde4/src/kdeutils/ark/kerfuffle/cliinterface.cpp", line=423) at /home/kubo/kde4/src/qt-copy/src/corelib/global/qglobal.cpp:1990 #13 0xb76f23b0 in Kerfuffle::CliInterface::readStdout (this=0x9c2ee18, handleAll=false) at /home/kubo/kde4/src/kdeutils/ark/kerfuffle/cliinterface.cpp:423 #14 0xb76f3bcf in Kerfuffle::CliInterface::qt_metacall (this=0x9c2ee18, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfc07d30) at /home/kubo/kde4/src/build/kdeutils/ark/kerfuffle/cliinterface.moc:80 #15 0xb5c9d164 in QMetaObject::metacall (object=0x9c2ee18, cl=QMetaObject::InvokeMetaMethod, idx=6, argv=0xbfc07d30) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #16 0xb5cb11be in QMetaObject::activate (sender=0x9add150, m=0xb5df67c8, local_signal_index=5, argv=0x0) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:3267 #17 0xb5c2c49f in QProcess::readyReadStandardOutput (this=0x9add150) at .moc/debug-shared/moc_qprocess.cpp:162 #18 0xb5c29958 in QProcessPrivate::_q_canReadStandardOutput (this=0x9de93b8) at /home/kubo/kde4/src/qt-copy/src/corelib/io/qprocess.cpp:887 #19 0xb5c707b6 in QProcessPrivate::waitForFinished (this=0x9de93b8, msecs=30000) at /home/kubo/kde4/src/qt-copy/src/corelib/io/qprocess_unix.cpp:1119 #20 0xb5c2af61 in QProcess::waitForFinished (this=0x9add150, msecs=30000) at /home/kubo/kde4/src/qt-copy/src/corelib/io/qprocess.cpp:1688 #21 0xb76f3970 in Kerfuffle::CliInterface::doKill (this=0x9c2ee18) at /home/kubo/kde4/src/kdeutils/ark/kerfuffle/cliinterface.cpp:631 #22 0xb76e1b94 in Kerfuffle::Job::doKill (this=0x9b99fe0) at /home/kubo/kde4/src/kdeutils/ark/kerfuffle/jobs.cpp:112 #23 0xb6c205bc in KJob::kill (this=0x9b99fe0, verbosity=KJob::EmitResult) at /home/kubo/kde4/src/kdelibs/kdecore/jobs/kjob.cpp:106 #24 0xb6fc405a in KUiServerJobTracker::Private::_k_killJob (this=0x9d38a58) at /home/kubo/kde4/src/kdelibs/kdeui/jobs/kuiserverjobtracker.cpp:58 #25 0xb6fc5abe in KUiServerJobTracker::qt_metacall (this=0x9efcbe8, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfc08100) at /home/kubo/kde4/src/build/kdelibs/kdeui/kuiserverjobtracker.moc:100 #26 0xb5c9d164 in QMetaObject::metacall (object=0x9efcbe8, cl=QMetaObject::InvokeMetaMethod, idx=25, argv=0xbfc08100) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #27 0xb5cb11be in QMetaObject::activate (sender=0x9ee34e0, m=0xb71b3024, local_signal_index=0, argv=0x0) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:3267 #28 0xb713c81b in OrgKdeJobViewInterface::cancelRequested (this=0x9ee34e0) at /home/kubo/kde4/src/build/kdelibs/kdeui/jobviewiface.moc:119 #29 0xb713c62e in OrgKdeJobViewInterface::qt_metacall (this=0x9ee34e0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfc081e4) at /home/kubo/kde4/src/build/kdelibs/kdeui/jobviewiface.moc:96 #30 0xb6abd2b2 in QDBusConnectionPrivate::deliverCall (this=0x9ab46d0, object=0x9ee34e0, msg=..., metaTypes=..., slotIdx=5) at /home/kubo/kde4/src/qt-copy/src/dbus/qdbusintegrator.cpp:904 #31 0xb6ac998e in QDBusCallDeliveryEvent::placeMetaCall (this=0x9bad538, object=0x9ee34e0) at /home/kubo/kde4/src/qt-copy/src/dbus/qdbusintegrator_p.h:101 #32 0xb5cad359 in QObject::event (this=0x9ee34e0, e=0x9bad538) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:1240 #33 0xb5f9b96e in QApplicationPrivate::notify_helper (this=0x9a74108, receiver=0x9ee34e0, e=0x9bad538) at /home/kubo/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:4297 #34 0xb5f990b0 in QApplication::notify (this=0xbfc08c98, receiver=0x9ee34e0, e=0x9bad538) at /home/kubo/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3701 #35 0xb6fc7da0 in KApplication::notify (this=0xbfc08c98, receiver=0x9ee34e0, event=0x9bad538) at /home/kubo/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:302 #36 0xb5c95bb5 in QCoreApplication::notifyInternal (this=0xbfc08c98, receiver=0x9ee34e0, event=0x9bad538) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:704 #37 0xb5f8bdef in QCoreApplication::sendEvent (receiver=0x9ee34e0, event=0x9bad538) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:215 #38 0xb5c96c69 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9a44a88) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1345 #39 0xb5c96921 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1238 #40 0xb60718dc in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:220 #41 0xb5ccc570 in postEventSourceDispatch (s=0x9a76318) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:276 #42 0xb53a5378 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #43 0xb53a8bf0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #44 0xb53a8d23 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #45 0xb5ccd57c in QEventDispatcherGlib::processEvents (this=0x9a740a8, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:412 #46 0xb60707ea in QGuiEventDispatcherGlib::processEvents (this=0x9a740a8, flags=...) at /home/kubo/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #47 0xb5c92f8f in QEventLoop::processEvents (this=0xbfc08c0c, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #48 0xb5c930d4 in QEventLoop::exec (this=0xbfc08c0c, flags=...) at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:201 #49 0xb5c96291 in QCoreApplication::exec () at /home/kubo/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:981 #50 0xb5f98cca in QApplication::exec () at /home/kubo/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3576 #51 0x08050dfc in main (argc=5, argv=0xbfc090a4) at /home/kubo/kde4/src/kdeutils/ark/app/main.cpp:210 *** Bug 226931 has been marked as a duplicate of this bug. *** *** Bug 230428 has been marked as a duplicate of this bug. *** *** Bug 242770 has been marked as a duplicate of this bug. *** *** Bug 250170 has been marked as a duplicate of this bug. *** Created attachment 51727 [details]
New crash information added by DrKonqi
ark (2.15) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0
I canceled the creation of the RAR file using Dolphin progress bar.
-- Backtrace (Reduced):
#6 KJob::emitResult (this=0x1745420) at ../../kdecore/jobs/kjob.cpp:305
#7 0x00007fc9ce591555 in Kerfuffle::AddToArchive::slotFinished (this=0x1745420, job=0x17574b0) at ../../../ark/kerfuffle/addtoarchive.cpp:216
#8 0x00007fc9ce584730 in Kerfuffle::AddToArchive::qt_metacall (this=0x1745420, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff3affd3b0) at moc_addtoarchive.cpp:89
[...]
#10 0x00007fc9cc4df422 in KJob::result (this=0x1745420, _t1=0x17574b0) at ./kjob.moc:194
#11 0x00007fc9cc4df6c0 in KJob::emitResult (this=0x17574b0) at ../../kdecore/jobs/kjob.cpp:312
*** Bug 255576 has been marked as a duplicate of this bug. *** Changing the default assignee in the currently open Ark bug reports to me. *** Bug 263515 has been marked as a duplicate of this bug. *** *** Bug 270007 has been marked as a duplicate of this bug. *** *** Bug 254228 has been marked as a duplicate of this bug. *** From bug 254228: it looks like the archive creation carries on (or at least used to) depending on the format. *** Bug 278228 has been marked as a duplicate of this bug. *** *** Bug 278574 has been marked as a duplicate of this bug. *** *** Bug 279496 has been marked as a duplicate of this bug. *** *** Bug 279873 has been marked as a duplicate of this bug. *** Created attachment 66342 [details]
New crash information added by DrKonqi
ark (2.17) on KDE Platform 4.7.3 (4.7.3) using Qt 4.7.4
- What I was doing when the application crashed:
I cancelled a zip file creation using the stop button from the notification job. Bug is still valid in this version.
-- Backtrace (Reduced):
#6 isSignalConnected (signal_index=2, this=0x0) at kernel/qobject_p.h:221
[...]
#8 0x00007f43847af40f in KJob::finished (this=<optimized out>, _t1=0x12f2c40) at ./kjob.moc:173
#9 0x00007f43847af5e5 in KJob::emitResult (this=0x12f2c40) at ../../kdecore/jobs/kjob.cpp:310
#10 0x00007f438685a438 in Kerfuffle::AddToArchive::slotFinished(KJob*) () from /usr/lib/libkerfuffle.so.4
#11 0x00007f438684e260 in Kerfuffle::AddToArchive::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkerfuffle.so.4
*** Bug 283074 has been marked as a duplicate of this bug. *** *** Bug 288840 has been marked as a duplicate of this bug. *** *** Bug 293631 has been marked as a duplicate of this bug. *** Created attachment 69785 [details]
New crash information added by DrKonqi
ark (2.17) on KDE Platform 4.7.4 (4.7.4) "release 5" using Qt 4.7.4
- What I was doing when the application crashed:
I was archiving a folder, noticed that the progress stays empty and that the new file size is already 600 mb and pushed cancel. Ark crashed.
-- Backtrace (Reduced):
#6 isSignalConnected (signal_index=2, this=0x0) at kernel/qobject_p.h:224
[...]
#8 0x00007f02304fc4bf in KJob::finished(KJob*) () from /usr/lib64/libkdecore.so.5
#9 0x00007f02304fc695 in KJob::emitResult() () from /usr/lib64/libkdecore.so.5
#10 0x00007f0232591918 in Kerfuffle::AddToArchive::slotFinished(KJob*) () from /usr/lib64/libkerfuffle.so.4
#11 0x00007f0232585750 in Kerfuffle::AddToArchive::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libkerfuffle.so.4
*** Bug 297373 has been marked as a duplicate of this bug. *** *** Bug 298296 has been marked as a duplicate of this bug. *** *** Bug 300387 has been marked as a duplicate of this bug. *** *** Bug 306015 has been marked as a duplicate of this bug. *** *** Bug 326940 has been marked as a duplicate of this bug. *** *** Bug 330687 has been marked as a duplicate of this bug. *** Created attachment 86551 [details]
New crash information added by DrKonqi
ark (2.19) on KDE Platform 4.13.0 using Qt 4.8.5
- What I was doing when the application crashed:
I just opened 100MB tar.bz2 file. Ark went down immidiatelly.
-- Backtrace (Reduced):
#6 0x00007f04cc004a55 in Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) () from /usr/lib64/libkerfuffle.so.4
#7 0x00007f04b9e27d42 in LibArchiveInterface::emitEntryFromArchiveEntry(archive_entry*) () from /usr/lib64/kde4/kerfuffle_libarchive.so
#8 0x00007f04b9e28bad in LibArchiveInterface::list() () from /usr/lib64/kde4/kerfuffle_libarchive.so
#9 0x00007f04cc005524 in Kerfuffle::ListJob::doWork() () from /usr/lib64/libkerfuffle.so.4
#10 0x00007f04cc005251 in Kerfuffle::Job::Private::run() () from /usr/lib64/libkerfuffle.so.4
*** Bug 336370 has been marked as a duplicate of this bug. *** It's not just the eventual crash that's ugly with this bug, it's the hideous wordless error popup (just says "Error - Ark" in the title bar and shows a big red X) and the fact that the operation continues on until you close that popup. In theory, what we want is for it to stop immediately, give no error, and prompt us whether it should delete the partial file. (Observed on Ark version 2.19 / KDE 4.14.2 / Kubuntu 14.04 32-bit.) Git commit d059701e0a07bc8214e6e0a4104732d09c05cf35 by Elvis Angelaccio. Committed on 08/12/2015 at 21:09. Pushed by elvisangelaccio into branch 'Applications/15.12'. Do not show a messagebox with empty error message When the user stops an AddToArchive job (e.g. from the Notifications plasmoid), the errorText() of the stopped AddJob is empty and a meaningless KMessageBox is displayed. With this patch, the messagebox is created only if there is an error to show. As a side effect, Ark stops crashing when using cliplugins, because emitResult() is not blocked anymore by the messagebox. For the same reason, the end of the cliplugin's QProcess is not anymore delayed until the user closes the messagebox. Note that if there would be an error message, Ark would crash anyway. M +2 -2 kerfuffle/addtoarchive.cpp http://commits.kde.org/ark/d059701e0a07bc8214e6e0a4104732d09c05cf35 I don't know why this report was closed, but the actual bug is not fixed yet. My latest patch is unrelated and it's only a workaround. Plus, when creating an archive with the libarchive plugin, it's not possible at all to stop the job. That's why I'm also changing the title of this report. *** Bug 358937 has been marked as a duplicate of this bug. *** The backtrace in duplicate #358937 is likely more updated than the OP's. Git commit 8c21ca3ae9326d772e2f037c4f79ba9ca10af6ad by Elvis Angelaccio. Committed on 23/04/2016 at 13:20. Pushed by elvisangelaccio into branch 'Applications/16.04'. libarchive: properly stop all jobs We use the m_abortOperation flag in the same way ListJob does (see commit acb455da04). We also need to remove the disconnect() in the Job destructor, which makes Ark crash if we stop an AddToArchive job. This disconnect() looks like a relic of the past (see e.g. commit 15fce6f5) and doesn't seem really necessary. Note that the CliInterface jobs still need to be fixed. So do batch extract jobs, which are KCompositeJobs and currently ignore the kill button in the systray. Differential Revision: D1466 M +0 -2 kerfuffle/jobs.cpp M +3 -1 plugins/libarchive/libarchiveplugin.cpp M +1 -1 plugins/libarchive/libarchiveplugin.h M +12 -3 plugins/libarchive/readwritelibarchiveplugin.cpp http://commits.kde.org/ark/8c21ca3ae9326d772e2f037c4f79ba9ca10af6ad Git commit 074d52778f68c2b1456ba54633bace8e366667cb by Elvis Angelaccio. Committed on 30/04/2016 at 11:02. Pushed by elvisangelaccio into branch 'master'. Don't block the main thread while running CliInterface jobs Currently we freeze the GUI thread while running CliInterface jobs, because there is a nested event loop in runProcess(), which doesn't run anymore in a separate thread. We can simply drop this event loop and rework the CliInterface logic, such that the emit signal is not emitted anymore when runProcess() returns, but in processFinished() instead. This exposed a crash when closing the main window while a pending job was running. The fix is simply to not emit finished() if the m_abortingOperation flag is set. Related: bug 193908 FIXED-IN: 16.08.0 Differential Revision: D1510 M +4 -8 kerfuffle/archiveinterface.h M +116 -86 kerfuffle/cliinterface.cpp M +13 -3 kerfuffle/cliinterface.h M +0 -1 part/jobtracker.cpp M +0 -1 plugins/cliunarchiverplugin/cliplugin.cpp http://commits.kde.org/ark/074d52778f68c2b1456ba54633bace8e366667cb |