Summary: | ark crashes when opening/extracting archives, since rev 955593 | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Mikko C. <mikko.cal> |
Component: | general | Assignee: | Harald Hvaal <metellius> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | rakuco |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Mikko C.
2009-04-25 12:04:17 UTC
Please update your trunk to the latest revision. After that commit there has been a lot of work on these threading issues. Can you please confirm if it persists after that? Yes, I was using trunk.. Then I bisected and found the commit that caused the crash. Now I switched back to trunk and the backtrace is very different: ark(10909)/ark (kdeutils) Kerfuffle::factory: Loading library "kerfuffle_clirar" ark(10909)/ark (kdeutils) Part::setBusyGui: [New Thread 0x4101b950 (LWP 10914)] ark(10909)/ark (kdeutils) Kerfuffle::ThreadExecution::run: Run ark(10909)/ark (kdeutils) Kerfuffle::CliInterface::failOperation: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x4101b950 (LWP 10914)] QProcess::terminate (this=0x0) at io/qprocess.cpp:1630 1630 io/qprocess.cpp: No such file or directory. in io/qprocess.cpp Current language: auto; currently c++ (gdb) bt #0 QProcess::terminate (this=0x0) at io/qprocess.cpp:1630 #1 0x00007f07799acc6d in Kerfuffle::CliInterface::failOperation () from /usr/kde/live/lib64/libkerfuffle.so.4 #2 0x00007f07799af228 in Kerfuffle::CliInterface::list () from /usr/kde/live/lib64/libkerfuffle.so.4 #3 0x00007f077999c781 in Kerfuffle::ListJob::doWork () from /usr/kde/live/lib64/libkerfuffle.so.4 #4 0x00007f077999fe71 in Kerfuffle::ThreadExecution::run () from /usr/kde/live/lib64/libkerfuffle.so.4 #5 0x00007f0776b92829 in QThreadPrivate::start (arg=0x2240150) at thread/qthread_unix.cpp:189 #6 0x00007f077691f037 in start_thread () from /lib/libpthread.so.0 #7 0x00007f0775eedcbd in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Is that "io/qprocess.cpp: No such file or directory." my system's fault? Does it matter? I've never seem something like that, but it looks like it can't find your qt sources anymore. I just don't know if it matters to the crash. Can you attach a file that always causes this crash? Hm weird, now I can't get it to crash anymore, no matter what archive I try to extract or open... I'll reopen this if I encounter the same problem and get a decent backtrace. Sorry for the noise :) Nono, it's not noise. It's actually a very valid bug and I'm working on fixing it now. It points to a flaw in cliinterface that I somehow forgot to fix some time back which I'm going to fix now. SVN commit 961690 by metellius: BUG: 190610 There, a proper fix for the bug. Make sure running process after process works fine by not removing the process until the next one has been created. Also, the readstdout system has been cleaned up a good bit. M +70 -56 cliinterface.cpp M +1 -0 cliinterface.h WebSVN link: http://websvn.kde.org/?view=rev&revision=961690 Not sure if it's related, but now I'm getting crashes opening/extracting .zip files: -- Application and System information: Application that crashed: ark Version of the application: 2.13 KDE Version: 4.2.71 (KDE 4.2.71 (KDE 4.3 >= 20090428)) Qt Version: 4.5.1 Operating System: Linux 2.6.30-rc4 x86_64 -- Backtrace: Application: Ark (ark), signal: Aborted [Current thread is 0 (LWP 2051)] Thread 3 (Thread 0x42044950 (LWP 2052)): [KCrash Handler] #5 0x00007f322abb4205 in raise () from /lib/libc.so.6 #6 0x00007f322abb5723 in abort () from /lib/libc.so.6 #7 0x00007f322b8ec015 in qt_message_output (msgType=QtFatalMsg, buf=<value optimized out>) at global/qglobal.cpp:2017 #8 0x00007f322b8ec130 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2216 #9 0x00007f32222b8264 in CliPlugin::readListLine () from /usr/kde/live/lib64/kde4/kerfuffle_clizip.so #10 0x00007f322e713896 in Kerfuffle::CliInterface::handleLine () from /usr/kde/live/lib64/libkerfuffle.so.4 #11 0x00007f322e713e8d in Kerfuffle::CliInterface::readStdout () from /usr/kde/live/lib64/libkerfuffle.so.4 #12 0x00007f322e7142b8 in Kerfuffle::CliInterface::qt_metacall () from /usr/kde/live/lib64/libkerfuffle.so.4 #13 0x00007f322b9ead65 in QMetaObject::activate (sender=0x16468b0, from_signal_index=<value optimized out>, to_signal_index=13, argv=0xffffffffffffffff) at kernel/qobject.cpp:3108 #14 0x00007f322b97da6f in QProcessPrivate::_q_canReadStandardOutput (this=0x1647190) at io/qprocess.cpp:564 #15 0x00007f322b97ec39 in QProcess::qt_metacall (this=0x16468b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x42043750) at .moc/debug-shared/moc_qprocess.cpp:101 #16 0x00007f322d09890d in KProcess::qt_metacall () from /usr/kde/live/lib64/libkdecore.so.5 #17 0x00007f322b9ead65 in QMetaObject::activate (sender=0x164f460, from_signal_index=<value optimized out>, to_signal_index=4, argv=0xffffffffffffffff) at kernel/qobject.cpp:3108 #18 0x00007f322ba1de1e in QSocketNotifier::activated (this=0x803, _t1=21) at .moc/debug-shared/moc_qsocketnotifier.cpp:83 #19 0x00007f322b9f0223 in QSocketNotifier::event (this=0x164f460, e=0x42043d20) at kernel/qsocketnotifier.cpp:316 #20 0x00007f322be4e43d in QApplicationPrivate::notify_helper (this=0x13fa450, receiver=0x164f460, e=0x42043d20) at kernel/qapplication.cpp:4057 #21 0x00007f322be5708e in QApplication::notify (this=0x7fff36b3bde0, receiver=0x164f460, e=0x42043d20) at kernel/qapplication.cpp:4022 #22 0x00007f322d8b81db in KApplication::notify () from /usr/kde/live/lib64/libkdeui.so.5 #23 0x00007f322b9d53eb in QCoreApplication::notifyInternal (this=0x7fff36b3bde0, receiver=0x164f460, event=0x42043d20) at kernel/qcoreapplication.cpp:606 #24 0x00007f322b9fef60 in QEventDispatcherUNIX::activateSocketNotifiers (this=<value optimized out>) at kernel/qcoreapplication.h:213 #25 0x00007f322b9ff48c in QEventDispatcherUNIXPrivate::doSelect (this=0x16452a0, flags={i = 1107574496}, timeout=0x0) at kernel/qeventdispatcher_unix.cpp:250 #26 0x00007f322b9ff5ed in QEventDispatcherUNIX::processEvents (this=0x1641ee0, flags={i = 1107574560}) at kernel/qeventdispatcher_unix.cpp:904 #27 0x00007f322b9d4052 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1107574608}) at kernel/qeventloop.cpp:149 #28 0x00007f322b9d41e5 in QEventLoop::exec (this=0x42043f90, flags={i = 1107574688}) at kernel/qeventloop.cpp:196 #29 0x00007f322b8f152c in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #30 0x00007f322e704f49 in Kerfuffle::ThreadExecution::run () from /usr/kde/live/lib64/libkerfuffle.so.4 #31 0x00007f322b8f4839 in QThreadPrivate::start (arg=0x1644f70) at thread/qthread_unix.cpp:189 #32 0x00007f322b683037 in start_thread () from /lib/libpthread.so.0 #33 0x00007f322ac51cbd in clone () from /lib/libc.so.6 #34 0x0000000000000000 in ?? () Thread 2 (Thread 0x410a4950 (LWP 2053)): #0 0x00007f322ac4b422 in select () from /lib/libc.so.6 #1 0x00007f322b9b67f5 in QProcessManager::run (this=0x13fbd20) at io/qprocess_unix.cpp:305 #2 0x00007f322b8f4839 in QThreadPrivate::start (arg=0x13fbd20) at thread/qthread_unix.cpp:189 #3 0x00007f322b683037 in start_thread () from /lib/libpthread.so.0 #4 0x00007f322ac51cbd in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f322eb07750 (LWP 2051)): #0 0x00007f322b686da9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f322b8f53f5 in QWaitCondition::wait (this=0x13fb990, mutex=0x13fb970, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87 #2 0x00007f322b8f4af7 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:485 #3 0x00007f322b9b941a in ~QProcessManager (this=0x13fbd20) at io/qprocess_unix.cpp:268 #4 0x00007f322b9b97d5 in ~QGlobalStaticDeleter (this=0x7f322bcb12e8) at ../../include/QtCore/../../src/corelib/global/qglobal.h:1628 #5 0x00007f322abb6dad in exit () from /lib/libc.so.6 #6 0x00007f322bea9b88 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:707 #7 0x00007f322d8b7bf8 in KApplication::xioErrhandler () from /usr/kde/live/lib64/libkdeui.so.5 #8 0x00007f322990c024 in _XIOError () from /usr/lib/libX11.so.6 #9 0x00007f322991329f in process_responses () from /usr/lib/libX11.so.6 #10 0x00007f3229913858 in _XReply () from /usr/lib/libX11.so.6 #11 0x00007f32298f0f15 in XGetWindowProperty () from /usr/lib/libX11.so.6 #12 0x00007f32298f009d in XGetWMHints () from /usr/lib/libX11.so.6 #13 0x00007f322bed0f47 in QWidgetPrivate::show_sys (this=0x153aa20) at kernel/qwidget_x11.cpp:1681 #14 0x00007f322bea25bd in QWidgetPrivate::show_helper (this=0x153aa20) at kernel/qwidget.cpp:6736 #15 0x00007f322bea2b1a in QWidget::setVisible (this=0x153b8b0, visible=<value optimized out>) at kernel/qwidget.cpp:6947 #16 0x000000000040b1c5 in main () console output: ark(2131)/ark (kdeutils) Kerfuffle::factory: Loading library "kerfuffle_clizip" ark(2131)/ark (kdeutils) Part::setBusyGui: ark(2131)/ark (kdeutils) Kerfuffle::ThreadExecution::run: Run ark(2131)/ark (kdeutils) Kerfuffle::CliInterface::createProcess: ark(2131)/ark (kdeutils) Kerfuffle::CliInterface::executeProcess: Executing "/usr/bin/unzip" ("-l", "-v", "/home/mikko/sdk-l4/multicell2.zip") ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/qt4/QtCore/qlist.h, line 403 KCrash: crashing... crashRecursionCounter = 2 Yes, this is simply the zip-plugin being unfinished yet. If you care very much about having ark working right now, you can use a desktop file to raise the priority of the old libzip-plugin. Otherwise, this should be fixed as soon as I finish the specing the zip workings. |