Application: ark (2.16) KDE Platform Version: 4.5.90 (4.6 RC1) Qt Version: 4.7.1 Operating System: Linux 2.6.34.7-0.5-desktop x86_64 Distribution: "openSUSE 11.3 (x86_64)" -- Information about the crash: - What I was doing when the application crashed: I had just completed decompressing a multiple rar archive (cd1) and had selected the second cd2 rar and ark crashed. -- Backtrace: Application: Ark (ark), signal: Segmentation fault [Current thread is 1 (Thread 0x7f42cefd2760 (LWP 23455))] Thread 3 (Thread 0x7f42bb4a8710 (LWP 23456)): #0 0x00007f42cc08c6b3 in poll () from /lib64/libc.so.6 #1 0x00007f42c8983fd4 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f42c8984510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007f42cc7bdae6 in QEventDispatcherGlib::processEvents (this=0x815120, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #4 0x00007f42cc792262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f42cc792475 in QEventLoop::exec (this=0x7f42bb4a7de0, flags=...) at kernel/qeventloop.cpp:201 #6 0x00007f42cc6a51a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490 #7 0x00007f42cc773918 in QInotifyFileSystemWatcherEngine::run (this=0x941760) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f42cc6a7a1e in QThreadPrivate::start (arg=0x941760) at thread/qthread_unix.cpp:285 #9 0x00007f42c9d8da4f in start_thread () from /lib64/libpthread.so.0 #10 0x00007f42cc09582d in clone () from /lib64/libc.so.6 #11 0x0000000000000000 in ?? () Thread 2 (Thread 0x7f42ba204710 (LWP 23494)): [KCrash Handler] #6 ref (this=0x7f42ba202b40, t=..., date=0x0, time=0x7f42ba202bd0) at ../../src/corelib/arch/qatomic_x86_64.h:121 #7 QString (this=0x7f42ba202b40, t=..., date=0x0, time=0x7f42ba202bd0) at ../../src/corelib/tools/qstring.h:729 #8 QDateTimeParser::fromString (this=0x7f42ba202b40, t=..., date=0x0, time=0x7f42ba202bd0) at tools/qdatetime.cpp:5785 #9 0x00007f42cc6beb1d in QTime::fromString (string=..., format=...) at tools/qdatetime.cpp:1909 #10 0x00007f42ba20aa4e in CliPlugin::readListLine (this=0x76ebe0, line=...) at /usr/src/debug/kdeutils-4.5.90/ark/plugins/clirarplugin/cliplugin.cpp:184 #11 0x00007f42cec1ba82 in Kerfuffle::CliInterface::handleLine (this=0x76ebe0, line=...) at /usr/src/debug/kdeutils-4.5.90/ark/kerfuffle/cliinterface.cpp:522 #12 0x00007f42cec1c104 in Kerfuffle::CliInterface::readStdout (this=0x76ebe0, handleAll=<value optimized out>) at /usr/src/debug/kdeutils-4.5.90/ark/kerfuffle/cliinterface.cpp:464 #13 0x00007f42cec1c42e in Kerfuffle::CliInterface::qt_metacall (this=0x76ebe0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7f42ba203360) at /usr/src/debug/kdeutils-4.5.90/build/ark/kerfuffle/cliinterface.moc:80 #14 0x00007f42cc7a7fef in QMetaObject::activate (sender=0xba7c70, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3272 #15 0x00007f42cc73230d in QProcessPrivate::_q_canReadStandardOutput (this=0xbb9a90) at io/qprocess.cpp:897 #16 0x00007f42cc734799 in QProcess::qt_metacall (this=0xba7c70, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7f42ba203550) at .moc/release-shared/moc_qprocess.cpp:107 #17 0x00007f42ccb84808 in KProcess::qt_metacall (this=0xba7c70, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=<value optimized out>) at /usr/src/debug/kdelibs-4.5.90/build/kdecore/kprocess.moc:69 #18 0x00007f42cc7a7fef in QMetaObject::activate (sender=0xb873d0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7f42ba203550) at kernel/qobject.cpp:3272 #19 0x00007f42cc7f06ee in QSocketNotifier::activated (this=<value optimized out>, _t1=24) at .moc/release-shared/moc_qsocketnotifier.cpp:89 #20 0x00007f42cc7adb8b in QSocketNotifier::event (this=0xb873d0, e=0x7f42ba203c00) at kernel/qsocketnotifier.cpp:317 #21 0x00007f42cd143cd4 in QApplicationPrivate::notify_helper (this=0x63b7c0, receiver=0xb873d0, e=0x7f42ba203c00) at kernel/qapplication.cpp:4445 #22 0x00007f42cd14c1ca in QApplication::notify (this=<value optimized out>, receiver=0xb873d0, e=0x7f42ba203c00) at kernel/qapplication.cpp:4324 #23 0x00007f42cddafc46 in KApplication::notify (this=0x7fffe4ec0620, receiver=0xb873d0, event=0x7f42ba203c00) at /usr/src/debug/kdelibs-4.5.90/kdeui/kernel/kapplication.cpp:311 #24 0x00007f42cc792e2c in QCoreApplication::notifyInternal (this=0x7fffe4ec0620, receiver=0xb873d0, event=0x7f42ba203c00) at kernel/qcoreapplication.cpp:732 #25 0x00007f42cc7bd469 in sendEvent (source=0xbbf000) at kernel/qcoreapplication.h:215 #26 socketNotifierSourceDispatch (source=0xbbf000) at kernel/qeventdispatcher_glib.cpp:110 #27 0x00007f42c8983a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #28 0x00007f42c8984270 in ?? () from /usr/lib64/libglib-2.0.so.0 #29 0x00007f42c8984510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #30 0x00007f42cc7bda8f in QEventDispatcherGlib::processEvents (this=0xc1f0f0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #31 0x00007f42cc792262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #32 0x00007f42cc792475 in QEventLoop::exec (this=0x7f42ba203e20, flags=...) at kernel/qeventloop.cpp:201 #33 0x00007f42cc6a51a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490 #34 0x00007f42cc6a7a1e in QThreadPrivate::start (arg=0x98b7e0) at thread/qthread_unix.cpp:285 #35 0x00007f42c9d8da4f in start_thread () from /lib64/libpthread.so.0 #36 0x00007f42cc09582d in clone () from /lib64/libc.so.6 #37 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f42cefd2760 (LWP 23455)): #0 0x00007f42c9d9239c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f42cc6a810b in wait (this=<value optimized out>, mutex=0x943940, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x943940, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f42cc6a71c0 in QThread::wait (this=<value optimized out>, time=18446744073709551615) at thread/qthread_unix.cpp:683 #4 0x00007f42cc7671b0 in QFileSystemWatcher::~QFileSystemWatcher (this=<value optimized out>, __in_chrg=<value optimized out>) at io/qfilesystemwatcher.cpp:440 #5 0x00007f42cc767289 in QFileSystemWatcher::~QFileSystemWatcher (this=0x82a5a0, __in_chrg=<value optimized out>) at io/qfilesystemwatcher.cpp:456 #6 0x00007f42cc7a53c4 in QObjectPrivate::deleteChildren (this=0x943630) at kernel/qobject.cpp:1949 #7 0x00007f42cc7aa072 in QObject::~QObject (this=0x943880, __in_chrg=<value optimized out>) at kernel/qobject.cpp:945 #8 0x00007f42cbd87079 in Solid::Backends::Fstab::FstabWatcher::~FstabWatcher (this=0x943880, __in_chrg=<value optimized out>) at /usr/src/debug/kdelibs-4.5.90/solid/solid/backends/fstab/fstabwatcher.cpp:51 #9 0x00007f42cbffa4e1 in __run_exit_handlers () from /lib64/libc.so.6 #10 0x00007f42cbffa535 in exit () from /lib64/libc.so.6 #11 0x00007f42cd1b0478 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:773 #12 0x00007f42cdda3c08 in KApplication::xioErrhandler (this=0x7fffe4ec0620, dpy=0x643430) at /usr/src/debug/kdelibs-4.5.90/kdeui/kernel/kapplication.cpp:417 #13 0x00007f42ca886a3e in _XIOError (dpy=0x643430) at XlibInt.c:3138 #14 0x00007f42ca88d5a5 in process_responses (dpy=0x643430, wait_for_first_event=0, current_error=0x0, current_request=0) at xcb_io.c:247 #15 0x00007f42ca88d90c in _XEventsQueued (dpy=0x643430, mode=<value optimized out>) at xcb_io.c:263 #16 0x00007f42ca8767ef in XEventsQueued (dpy=0x643430, mode=2) at Pending.c:44 #17 0x00007f42cd1e8d4c in x11EventSourceCheck (s=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:85 #18 0x00007f42c8983718 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0 #19 0x00007f42c8983ff2 in ?? () from /usr/lib64/libglib-2.0.so.0 #20 0x00007f42c8984510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #21 0x00007f42cc7bdae6 in QEventDispatcherGlib::processEvents (this=0x620230, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #22 0x00007f42cd1e8eae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #23 0x00007f42cc792262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #24 0x00007f42cc792475 in QEventLoop::exec (this=0x7fffe4ec04d0, flags=...) at kernel/qeventloop.cpp:201 #25 0x00007f42cc7968db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #26 0x000000000040e167 in main (argc=3, argv=0x7fffe4ec11d8) at /usr/src/debug/kdeutils-4.5.90/ark/app/main.cpp:209 This bug may be a duplicate of or related to bug 243273. Possible duplicates by query: bug 250222, bug 244100. Reported using DrKonqi
We need some more information here: were you using Dolphin to select the files? Did you open the first archive, extract it and then open the second archive? Can you provide a more detailed workflow so I can try to reproduce it step by step here?
I had opened and extracted "Inception.DVDRiP.XviD-ARROW" cd1 multiple rar file archive by right clicking on the file in dolphin to open ark and then opened cd2 arrow-inception.cd2.sfv from ark when the crash occurred. The CD1 archive is 708Mbytes and CD2 is 706Mbytes so attaching all the files is a problem, my upload speed is 64KiB/sec max but I will attach the sfv files. I can attach the torrent as well. I tried repeating the above steps with kde3 ark using dolphin but it works.
Created attachment 55512 [details] Torrent for archives. The individual rar files are too big to attach so I've attached the torrent file.
Do you have unrar or unrar-free?
I'm not sure which one it is : # rpm -qi unrar Name : unrar Relocations: (not relocatable) Version : 3.90.4 Vendor: openSUSE Release : 6.1 Build Date: Mon 05 Jul 2010 01:27:04 PM SAST Install Date: Fri 10 Sep 2010 03:18:12 PM SAST Build Host: build17 Group : Productivity/Archiving/Compression Source RPM: unrar-3.90.4-6.1.src.rpm Size : 193658 License: Unrar License. Freely distributable Signature : RSA/8, Mon 05 Jul 2010 01:27:31 PM SAST, Key ID b88b2fd43dbdc284 Packager : http://bugs.opensuse.org URL : http://www.rarlab.com Summary : A program to extract, test, and view RAR archives Description : The unRAR utility is a freeware program distributed with source code and developed for extracting, testing, and viewing the contents of archives created with the RAR archiver. Authors: -------- Eugene Roshal <roshal@creabel.com> Distribution: openSUSE 11.3
OK, that's unrar. Can you try to reproduce this crash with a small sample archive? You can create a multi-volume archive with 'rar a archive.rar -v[VOLUME_SIZE] file1 file2 ... fileN'.
I can try this but both the cd1 and cd2 archives were produced by the same source and I've unrared similar archives by the same process in the past with no crash so the chances of me being able to produce an archive that causes the crash are as slim as if you did it. Isn't there something I can look for with strace or gdb which would be helpful?
We can try to see what unrar is sending to the terminal and check if that's what Ark is expecting. You said you simply opened the first archive on Ark by (double-)clicking it on Dolphin, and while it was open you did the same to the second archive, and the second Ark instance crashed, right?
(In reply to comment #8) > We can try to see what unrar is sending to the terminal and check if that's > what Ark is expecting. > > You said you simply opened the first archive on Ark by (double-)clicking it on > Dolphin, and while it was open you did the same to the second archive, and the > second Ark instance crashed, right? No, I selected the cd2 rar using ark's file menu and while I can open the cd1 rar successfully any way I wish but the cd2 rar crashes kde4 ark. There must be something in the cd2 rar's header that causes it. Does ark use unrar the same way it would be used on the command line?
Yes, it does. Can you paste the output of 'unrar vt -c- -v YOURCD2.rar' on the terminal?
Created attachment 55576 [details] Cosole output from CD2 unrar The console output is a bit long so I've put them in text files
Created attachment 55577 [details] Cosole output from CD1 unrar In case it's usefull - the output from unraring CD1 which I assume was produced with the same system but doesn't cause a crash.
From "gdb --args ark --sync --nocrashhandler CD2/arrow-inception.cd2.rar" ark actually starts up and displays the archives name and the "extracting" progress bar is frozen with no percentage displayed.
I think I fixed this crash yesterday -- it's due to the '??? - the file header is corrupt' line on the output not being expected. I'll do some additional tests when I get home to be sure this has been fixed before closing the report.
SVN commit 1211820 by rkcosta: [clirarplugin] Add unit test to verify we don't crash on corrupt archives. Bug 261857 was fixed by r1211296 -- two independents reports for the same crash means a unit test is more than deserved :) CCBUG: 261857 M +1 -0 CMakeLists.txt A tests (directory) A tests/CMakeLists.txt A tests/clirartest.cpp [License: BSD] A tests/clirartest.h [License: BSD] A tests/data (directory) A tests/data/testReadCorruptedArchive.txt WebSVN link: http://websvn.kde.org/?view=rev&revision=1211820
Indeed, I did fix this crash yesterday :) The fix should be available for 4.5.5, 4.6.0 and trunk. Thanks a lot for helping me investigate the issue!
Closing, as it was fixed by r1211296.
I see we (openSUSE) are starting to build kde 4.5.95 is this fix in this version or do I need to make a patch?
Fortunately Dirk only created the tag today, so the commit was included -- http://websvn.kde.org/tags/KDE/4.5.95/kdeutils/ark/plugins/?view=log
Thanks, I'll be able to test it in a day or two when all the building is finished, I can't build in my home kde4 repo atm due to missing dependencies.
Confirm it's fixed in kdeutils 4.5.95