Bug 277393 - Ark crashes after to compress with 7zip
Summary: Ark crashes after to compress with 7zip
Status: RESOLVED FIXED
Alias: None
Product: ark
Classification: Applications
Component: general (show other bugs)
Version: 2.16
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Raphael Kubo da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-09 01:30 UTC by Gatoso
Modified: 2011-07-11 03:33 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.7.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gatoso 2011-07-09 01:30:56 UTC
Application: ark (2.16)
KDE Platform Version: 4.6.5 (4.6.5) (Compiled from sources)
Qt Version: 4.7.3
Operating System: Linux 2.6.39-pae i686
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
Hello

I have compressed, twice, using ark, from contextual menu in dolphin, folders that contain mp3 files and the two times, when ark finishes the processes it crashes


- Unusual behavior I noticed:

The crash can be reproduced every time.

-- Backtrace:
Application: Ark (ark), signal: Aborted
[Current thread is 1 (Thread 0xb4cb2930 (LWP 4215))]

Thread 3 (Thread 0xb2480b70 (LWP 4216)):
#0  0xb522fda0 in clock_gettime () from /lib/librt.so.1
#1  0xb5f3a8d5 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb601d0e6 in QTimerInfoList::updateCurrentTime (this=0x9a5d634) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb601d4aa in QTimerInfoList::timerWait (this=0x9a5d634, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb601b8c3 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb248011c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb601b965 in timerSourcePrepare (source=0x9a5d600, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb540ef8c in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#8  0xb540fe47 in g_main_context_iterate.isra.19 () from /usr/lib/libglib-2.0.so.0
#9  0xb54104da in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#10 0xb601c4cf in QEventDispatcherGlib::processEvents (this=0x9a5c0a0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0xb5fe7bbd in QEventLoop::processEvents (this=0xb24802a0, flags=...) at kernel/qeventloop.cpp:149
#12 0xb5fe7e09 in QEventLoop::exec (this=0xb24802a0, flags=...) at kernel/qeventloop.cpp:201
#13 0xb5ed9275 in QThread::exec (this=0x9a9e408) at thread/qthread.cpp:492
#14 0xb5fc55f3 in QInotifyFileSystemWatcherEngine::run (this=0x9a9e408) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb5edc74b in QThreadPrivate::start (arg=0x9a9e408) at thread/qthread_unix.cpp:320
#16 0xb55dfcb7 in start_thread () from /lib/libpthread.so.0
#17 0xb5cf0e7e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xb19aab70 (LWP 4224)):
[KCrash Handler]
#7  0xb7773424 in __kernel_vsyscall ()
#8  0xb5c4ae0f in raise () from /lib/libc.so.6
#9  0xb5c4c7b5 in abort () from /lib/libc.so.6
#10 0xb5ed0892 in qt_message_output (msgType=QtFatalMsg, buf=0xb1b0c348 "ASSERT: \"!m_process\" in file /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp, line 328") at global/qglobal.cpp:2282
#11 0xb5ed0a6b in qt_message (msgType=QtFatalMsg, msg=0xb605b4b8 "ASSERT: \"%s\" in file %s, line %d", ap=0xb19a9154 "\315\032t\267P\030t\267H\001") at global/qglobal.cpp:2328
#12 0xb5ed0b88 in qFatal (msg=0xb605b4b8 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2511
#13 0xb5ed0c15 in qt_assert (assertion=0xb7741acd "!m_process", file=0xb7741850 "/home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp", line=328) at global/qglobal.cpp:2027
#14 0xb773a317 in Kerfuffle::CliInterface::runProcess (this=0x9c0f738, programName=..., arguments=...) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp:328
#15 0xb773add4 in Kerfuffle::CliInterface::list (this=0x9c0f738) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp:88
#16 0xb773d180 in Kerfuffle::CliInterface::processFinished (this=0x9c0f738, exitCode=0, exitStatus=QProcess::NormalExit) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp:396
#17 0xb773d2e5 in Kerfuffle::CliInterface::qt_metacall (this=0x9c0f738, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xb19a9424) at /home/zuargo/Paquetes/kdeutils/src/build/ark/kerfuffle/cliinterface.moc:81
#18 0xb1c79313 in CliPlugin::qt_metacall (this=0x9c0f738, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xb19a9424) at /home/zuargo/Paquetes/kdeutils/src/build/ark/plugins/cli7zplugin/cliplugin.moc:66
#19 0xb5ff0714 in metacall (object=0x9c0f738, cl=QMetaObject::InvokeMetaMethod, idx=7, argv=0xb19a9424) at kernel/qmetaobject.cpp:237
#20 QMetaObject::metacall (object=0x9c0f738, cl=QMetaObject::InvokeMetaMethod, idx=7, argv=0xb19a9424) at kernel/qmetaobject.cpp:232
#21 0xb5fffd50 in QMetaObject::activate (sender=0xb1b09d90, m=0xb612ea9c, local_signal_index=2, argv=0xb19a9424) at kernel/qobject.cpp:3278
#22 0xb5f7959d in QProcess::finished (this=0xb1b09d90, _t1=0, _t2=QProcess::NormalExit) at .moc/debug-shared/moc_qprocess.cpp:142
#23 0xb5f7e76d in QProcessPrivate::_q_processDied (this=0xb1b02f70) at io/qprocess.cpp:1051
#24 0xb5f7efcb in QProcess::qt_metacall (this=0xb1b09d90, _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0xb19a9618) at .moc/debug-shared/moc_qprocess.cpp:115
#25 0xb6231d1e in KProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdecore.so.5
#26 0xb5c19022 in KPtyProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkpty.so.4
#27 0xb5ff0714 in metacall (object=0xb1b09d90, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0xb19a9618) at kernel/qmetaobject.cpp:237
#28 QMetaObject::metacall (object=0xb1b09d90, cl=QMetaObject::InvokeMetaMethod, idx=21, argv=0xb19a9618) at kernel/qmetaobject.cpp:232
#29 0xb5fffd50 in QMetaObject::activate (sender=0xb1b096e0, m=0xb6130798, local_signal_index=0, argv=0xb19a9618) at kernel/qobject.cpp:3278
#30 0xb6057ea5 in QSocketNotifier::activated (this=0xb1b096e0, _t1=32) at .moc/debug-shared/moc_qsocketnotifier.cpp:89
#31 0xb6009bbf in QSocketNotifier::event (this=0xb1b096e0, e=0xb19a9964) at kernel/qsocketnotifier.cpp:317
#32 0xb652fc4c in notify_helper (this=0x999f8f8, receiver=0xb1b096e0, e=0xb19a9964) at kernel/qapplication.cpp:4462
#33 QApplicationPrivate::notify_helper (this=0x999f8f8, receiver=0xb1b096e0, e=0xb19a9964) at kernel/qapplication.cpp:4434
#34 0xb6535df0 in QApplication::notify (this=0x999f8f8, receiver=0xb1b096e0, e=0xb19a9964) at kernel/qapplication.cpp:4341
#35 0xb714f321 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#36 0xb5fe950e in QCoreApplication::notifyInternal (this=0xbfe0caa4, receiver=0xb1b096e0, event=0xb19a9964) at kernel/qcoreapplication.cpp:731
#37 0xb601baeb in sendEvent (source=0xb1b0adf0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#38 socketNotifierSourceDispatch (source=0xb1b0adf0) at kernel/qeventdispatcher_glib.cpp:110
#39 0xb540fa1f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#40 0xb5410198 in g_main_context_iterate.isra.19 () from /usr/lib/libglib-2.0.so.0
#41 0xb54104da in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#42 0xb601c46a in QEventDispatcherGlib::processEvents (this=0x9af51c0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#43 0xb5fe7bbd in QEventLoop::processEvents (this=0xb19a9b9c, flags=...) at kernel/qeventloop.cpp:149
#44 0xb5fe7e09 in QEventLoop::exec (this=0xb19a9b9c, flags=...) at kernel/qeventloop.cpp:201
#45 0xb773a4f9 in Kerfuffle::CliInterface::runProcess (this=0x9c0f738, programName=..., arguments=...) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp:356
#46 0xb773b156 in Kerfuffle::CliInterface::addFiles (this=0x9c0f738, files=..., options=...) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/cliinterface.cpp:277
#47 0xb772f032 in Kerfuffle::AddJob::doWork (this=0x9be03f8) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/jobs.cpp:264
#48 0xb772ec56 in Kerfuffle::AddJob::qt_metacall (this=0x9be03f8, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xb19a9e4c) at /home/zuargo/Paquetes/kdeutils/src/build/ark/kerfuffle/jobs.moc:295
#49 0xb5ff0714 in metacall (object=0x9be03f8, cl=QMetaObject::InvokeMetaMethod, idx=31, argv=0xb19a9e4c) at kernel/qmetaobject.cpp:237
#50 QMetaObject::metacall (object=0x9be03f8, cl=QMetaObject::InvokeMetaMethod, idx=31, argv=0xb19a9e4c) at kernel/qmetaobject.cpp:232
#51 0xb5ff2293 in QMetaMethod::invoke (this=0xb19aa1b4, object=0x9be03f8, connectionType=Qt::DirectConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1578
#52 0xb5ff4823 in QMetaObject::invokeMethod (obj=0x9be03f8, member=0xb773faec "doWork", type=Qt::DirectConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1151
#53 0xb773003f in QMetaObject::invokeMethod (obj=0x9be03f8, member=0xb773faec "doWork", type=Qt::DirectConnection, val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /usr/include/QtCore/qobjectdefs.h:408
#54 0xb772e473 in Kerfuffle::Job::Private::run (this=0x9b02120) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/kerfuffle/jobs.cpp:54
#55 0xb5edc74b in QThreadPrivate::start (arg=0x9b02120) at thread/qthread_unix.cpp:320
#56 0xb55dfcb7 in start_thread () from /lib/libpthread.so.0
#57 0xb5cf0e7e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb4cb2930 (LWP 4215)):
#0  0xb7773424 in __kernel_vsyscall ()
#1  0xb55e392b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb5cfed0c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb5edcd00 in wait (this=0x9a9e938, mutex=0x9a9e920, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0x9a9e938, mutex=0x9a9e920, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0xb5edc34d in QThread::wait (this=0x9a9e408, time=4294967295) at thread/qthread_unix.cpp:722
#6  0xb5fb6f05 in QFileSystemWatcher::~QFileSystemWatcher (this=0x9a5b058, __in_chrg=<value optimized out>) at io/qfilesystemwatcher.cpp:446
#7  0xb5fb6fd2 in QFileSystemWatcher::~QFileSystemWatcher (this=0x9a5b058, __in_chrg=<value optimized out>) at io/qfilesystemwatcher.cpp:462
#8  0xb5fff80f in QObjectPrivate::deleteChildren (this=0x9a5b000) at kernel/qobject.cpp:1955
#9  0xb6005b26 in QObject::~QObject (this=0x9a59130, __in_chrg=<value optimized out>) at kernel/qobject.cpp:946
#10 0xb5bdb4bb in ?? () from /usr/lib/libsolid.so.4
#11 0xb5bdb4f2 in ?? () from /usr/lib/libsolid.so.4
#12 0xb5bdb352 in ?? () from /usr/lib/libsolid.so.4
#13 0xb5b5f449 in ?? () from /usr/lib/libsolid.so.4
#14 0xb5c4df61 in __run_exit_handlers () from /lib/libc.so.6
#15 0xb5c4dfed in exit () from /lib/libc.so.6
#16 0xb65b49d8 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:772
#17 0xb714d459 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib/libkdeui.so.5
#18 0xb714d494 in ?? () from /usr/lib/libkdeui.so.5
#19 0xb56c0086 in _XIOError () from /usr/lib/libX11.so.6
#20 0xb56bd80f in _XEventsQueued () from /usr/lib/libX11.so.6
#21 0xb56ae4db in XEventsQueued () from /usr/lib/libX11.so.6
#22 0xb65f37e5 in x11EventSourceCheck (s=0x999cca8) at kernel/qguieventdispatcher_glib.cpp:85
#23 0xb540f69c in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#24 0xb54100f0 in g_main_context_iterate.isra.19 () from /usr/lib/libglib-2.0.so.0
#25 0xb54104da in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#26 0xb601c46a in QEventDispatcherGlib::processEvents (this=0x9963aa8, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#27 0xb65f3a1a in QGuiEventDispatcherGlib::processEvents (this=0x9963aa8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#28 0xb5fe7bbd in QEventLoop::processEvents (this=0xbfe0c9b4, flags=...) at kernel/qeventloop.cpp:149
#29 0xb5fe7e09 in QEventLoop::exec (this=0xbfe0c9b4, flags=...) at kernel/qeventloop.cpp:201
#30 0xb5fedaed in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#31 0xb652da14 in QApplication::exec () at kernel/qapplication.cpp:3736
#32 0x0805060b in main (argc=) at /home/zuargo/Paquetes/kdeutils/src/kdeutils-4.6.5/ark/app/main.cpp:209

Reported using DrKonqi
Comment 1 Raphael Kubo da Costa 2011-07-09 04:10:59 UTC
Thanks for the report. I have a few questions about this crash:

 * Does it only happen when you use 7zip?
 * Does it only happen to these files, or with any file?
Comment 2 Gatoso 2011-07-09 14:38:22 UTC
* Does it only happen when you use 7zip?

No, when I use zip and java (.jar) also it happens.

Using tar (tar, bzip, gzip, LZMA, XZ) it does not happen.

* Does it only happen to these files, or with any file?

No, when I compress a folder containing images files also it happens.

Thank you by your attention.
Comment 3 Raphael Kubo da Costa 2011-07-09 19:56:32 UTC
Confirming, thanks.
Comment 4 Raphael Kubo da Costa 2011-07-11 03:20:35 UTC
SVN commit 1240907 by rkcosta:

cliinterface: Do not assume a process does not exist in runProcess().

The Q_ASSERT(!m_process) in the beginning of runProcess() was wrong, as when
one is adding files to an archive (or creating an archive) processFinished()
calls list(), which in turn calls runProcess() as well, thus making the assert
fail.

The best thing to do is just wait for the existing process to finish before
launching the new one.

BUG: 277393
FIXED-IN: 4.7.0


 M  +5 -2      cliinterface.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1240907
Comment 5 Raphael Kubo da Costa 2011-07-11 03:23:40 UTC
SVN commit 1240908 by rkcosta:

SVN commit 1240907 by rkcosta:

cliinterface: Do not assume a process does not exist in runProcess().

The Q_ASSERT(!m_process) in the beginning of runProcess() was wrong, as when
one is adding files to an archive (or creating an archive) processFinished()
calls list(), which in turn calls runProcess() as well, thus making the assert
fail.

The best thing to do is just wait for the existing process to finish before
launching the new one.

Backport of r1240907, in case the 4.6 ever gets packaged again.

CCBUG: 277393


 M  +5 -2      cliinterface.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1240908
Comment 6 Raphael Kubo da Costa 2011-07-11 03:33:37 UTC
SVN commit 1240917 by rkcosta:

cliinterface: Do not assume a process does not exist in runProcess().

The Q_ASSERT(!m_process) in the beginning of runProcess() was wrong, as when
one is adding files to an archive (or creating an archive) processFinished()
calls list(), which in turn calls runProcess() as well, thus making the assert
fail.

The best thing to do is just wait for the existing process to finish before
launching the new one.

Forwardport of r1240907.

CCBUG: 277393

 M  +5 -2      cliinterface.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1240917