Bug 242620

Summary: Ark crashes when ticking "Apply to all" on "File already exists" dialog when extracting files
Product: [Unmaintained] kdelibs Reporter: Nikola Kovacs <nx.devnull>
Component: generalAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: markotahal, rakuco, tristancenier
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.5.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Nikola Kovacs 2010-06-23 18:51:53 UTC
Application: ark (2.15)
KDE Platform Version: 4.4.85 (KDE 4.4.85 (KDE 4.5 Beta2))
Qt Version: 4.7.0
Operating System: Linux 2.6.32-23-generic x86_64
Distribution: Ubuntu 10.04 LTS

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

Ticking apply to all on a "File already exists" dialog when extracting zip file crashes Ark.

Steps to reproduce:

1. Create a zip archive with one file and place it in the same directory as the original file
2. Right click and select "Extract archive here" in dolphin
3. A dialog box should pop up asking you what you want to do with the duplicate file.
4. Tick "Apply to all"
5. Ark crashes

I was unable to reproduce this crash with a tar.gz file, and I didn't test with other formats.

The crash can be reproduced every time.

-- Backtrace:
Application: Ark (ark), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f502f2b2760 (LWP 8798))]

Thread 2 (Thread 0x7f501ea6d710 (LWP 8802)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f502cb7ad0b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x7f501ea6be08, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x7f501ea6be08, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f502eece603 in Kerfuffle::Query::waitForResponse (this=0x7f501ea6bdf0) at ../../../ark/kerfuffle/queries.cpp:57
#4  0x00007f502eed6abd in Kerfuffle::CliInterface::handleFileExistsMessage (this=0x198ca90, line=<value optimized out>) at ../../../ark/kerfuffle/cliinterface.cpp:563
#5  0x00007f502eed745b in Kerfuffle::CliInterface::handleLine (this=0x198ca90, line=...) at ../../../ark/kerfuffle/cliinterface.cpp:494
#6  0x00007f502eed797c in Kerfuffle::CliInterface::readStdout (this=0x198ca90, handleAll=true) at ../../../ark/kerfuffle/cliinterface.cpp:462
#7  0x00007f502eed7c6e in Kerfuffle::CliInterface::qt_metacall (this=0x198ca90, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7f501ea6c2d0) at ./cliinterface.moc:80
#8  0x00007f502cc84597 in QMetaObject::activate (sender=0x1991ff0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280
#9  0x00007f502cc0a70c in QProcessPrivate::_q_canReadStandardOutput (this=0x19934f0) at io/qprocess.cpp:897
#10 0x00007f502cc0afa9 in QProcess::qt_metacall (this=0x1991ff0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7f501ea6c4d0) at .moc/release-shared/moc_qprocess.cpp:107
#11 0x00007f502d0b1988 in KProcess::qt_metacall (this=0x19b404c, _c=128, _id=1, _a=0xffffffffffffffff) at ./kprocess.moc:69
#12 0x00007f502cc84597 in QMetaObject::activate (sender=0x19a6040, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280
#13 0x00007f502cccfffe in QSocketNotifier::activated (this=0x19b404c, _t1=32) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#14 0x00007f502cc890c3 in QSocketNotifier::event (this=0x19a6040, e=0x7f501ea6cb80) at kernel/qsocketnotifier.cpp:317
#15 0x00007f502d63884c in QApplicationPrivate::notify_helper (this=0x1817670, receiver=0x19a6040, e=0x7f501ea6cb80) at kernel/qapplication.cpp:4358
#16 0x00007f502d63e2ed in QApplication::notify (this=0x7fffc066ecb0, receiver=0x19a6040, e=0x7f501ea6cb80) at kernel/qapplication.cpp:4241
#17 0x00007f502e373f16 in KApplication::notify (this=0x7fffc066ecb0, receiver=0x19a6040, event=0x7f501ea6cb80) at ../../kdeui/kernel/kapplication.cpp:302
#18 0x00007f502cc6c87c in QCoreApplication::notifyInternal (this=0x7fffc066ecb0, receiver=0x19a6040, event=0x7f501ea6cb80) at kernel/qcoreapplication.cpp:732
#19 0x00007f502cc98d2a in QCoreApplication::sendEvent (source=0x19ac9a0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#20 socketNotifierSourceDispatch (source=0x19ac9a0) at kernel/qeventdispatcher_glib.cpp:110
#21 0x00007f5027ed18c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#22 0x00007f5027ed5748 in ?? () from /lib/libglib-2.0.so.0
#23 0x00007f5027ed58fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#24 0x00007f502cc98973 in QEventDispatcherGlib::processEvents (this=0x196f410, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#25 0x00007f502cc6b5b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#26 0x00007f502cc6b98c in QEventLoop::exec (this=0x7f501ea6cdb0, flags=) at kernel/qeventloop.cpp:201
#27 0x00007f502cb771cd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#28 0x00007f502eec9c2a in Kerfuffle::ThreadExecution::run (this=0x19ac850) at ../../../ark/kerfuffle/threading.cpp:47
#29 0x00007f502cb7a14e in QThreadPrivate::start (arg=0x19ac850) at thread/qthread_unix.cpp:266
#30 0x00007f502afa69ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#31 0x00007f502c54e6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#32 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f502f2b2760 (LWP 8798)):
[KCrash Handler]
#6  QWidget::d_func (this=0x0, enable=false) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:143
#7  QWidget::setEnabled (this=0x0, enable=false) at kernel/qwidget.cpp:3129
#8  0x00007f502e90cc61 in KIO::RenameDialog::applyAllPressed (this=0x19bcfb0) at ../../kio/kio/renamedialog.cpp:497
#9  0x00007f502e90da64 in KIO::RenameDialog::qt_metacall (this=0x19bcfb0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffc066ca50) at ./renamedialog.moc:105
#10 0x00007f502cc84597 in QMetaObject::activate (sender=0x19b15a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7f502cf9e120) at kernel/qobject.cpp:3280
#11 0x00007f502dcf9eb2 in QAbstractButton::clicked (this=0x0, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:206
#12 0x00007f502da036fb in QAbstractButtonPrivate::emitClicked (this=0x19b5b10) at widgets/qabstractbutton.cpp:546
#13 0x00007f502da04dcb in QAbstractButtonPrivate::click (this=0x19b5b10) at widgets/qabstractbutton.cpp:539
#14 0x00007f502da0503c in QAbstractButton::mouseReleaseEvent (this=0x19b15a0, e=0x7fffc066d3a0) at widgets/qabstractbutton.cpp:1121
#15 0x00007f502d68e19e in QWidget::event (this=0x19b15a0, event=0x7fffc066d3a0) at kernel/qwidget.cpp:8097
#16 0x00007f502d63884c in QApplicationPrivate::notify_helper (this=0x1817670, receiver=0x19b15a0, e=0x7fffc066d3a0) at kernel/qapplication.cpp:4358
#17 0x00007f502d63eb0e in QApplication::notify (this=0x7fffc066ecb0, receiver=0x19b15a0, e=0x7fffc066d3a0) at kernel/qapplication.cpp:3923
#18 0x00007f502e373f16 in KApplication::notify (this=0x7fffc066ecb0, receiver=0x19b15a0, event=0x7fffc066d3a0) at ../../kdeui/kernel/kapplication.cpp:302
#19 0x00007f502cc6c87c in QCoreApplication::notifyInternal (this=0x7fffc066ecb0, receiver=0x19b15a0, event=0x7fffc066d3a0) at kernel/qcoreapplication.cpp:732
#20 0x00007f502d63d5be in QCoreApplication::sendEvent (receiver=0x19b15a0, event=0x7fffc066d3a0, alienWidget=0x19b15a0, nativeWidget=0x19bcfb0, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#21 QApplicationPrivate::sendMouseEvent (receiver=0x19b15a0, event=0x7fffc066d3a0, alienWidget=0x19b15a0, nativeWidget=0x19bcfb0, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at kernel/qapplication.cpp:3023
#22 0x00007f502d6bfa75 in QETWidget::translateMouseEvent (this=0x19bcfb0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4403
#23 0x00007f502d6be3bc in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffc066dcc0) at kernel/qapplication_x11.cpp:3536
#24 0x00007f502d6ea482 in x11EventSourceDispatch (s=0x181b430, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#25 0x00007f5027ed18c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#26 0x00007f5027ed5748 in ?? () from /lib/libglib-2.0.so.0
#27 0x00007f5027ed58fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#28 0x00007f502cc98973 in QEventDispatcherGlib::processEvents (this=0x17fb560, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#29 0x00007f502d6e9dee in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#30 0x00007f502cc6b5b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#31 0x00007f502cc6b98c in QEventLoop::exec (this=0x7fffc066dff0, flags=) at kernel/qeventloop.cpp:201
#32 0x00007f502db1caee in QDialog::exec (this=0x19bcfb0) at dialogs/qdialog.cpp:546
#33 0x00007f502eecf738 in Kerfuffle::OverwriteQuery::execute (this=0x7f501ea6bdf0) at ../../../ark/kerfuffle/queries.cpp:101
#34 0x000000000040b681 in BatchExtract::slotUserQuery (this=0x1967b80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x19a1f00) at ../../../ark/app/batchextract.cpp:101
#35 BatchExtract::qt_metacall (this=0x1967b80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x19a1f00) at ./batchextract.moc:83
#36 0x00007f502cc7e66e in QObject::event (this=0x1967b80, e=0x0) at kernel/qobject.cpp:1219
#37 0x00007f502d63884c in QApplicationPrivate::notify_helper (this=0x1817670, receiver=0x1967b80, e=0x198f180) at kernel/qapplication.cpp:4358
#38 0x00007f502d63e2ed in QApplication::notify (this=0x7fffc066ecb0, receiver=0x1967b80, e=0x198f180) at kernel/qapplication.cpp:4241
#39 0x00007f502e373f16 in KApplication::notify (this=0x7fffc066ecb0, receiver=0x1967b80, event=0x198f180) at ../../kdeui/kernel/kapplication.cpp:302
#40 0x00007f502cc6c87c in QCoreApplication::notifyInternal (this=0x7fffc066ecb0, receiver=0x1967b80, event=0x198f180) at kernel/qcoreapplication.cpp:732
#41 0x00007f502cc6f7a2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x17fba60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#42 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x17fba60) at kernel/qcoreapplication.cpp:1373
#43 0x00007f502cc98e33 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#44 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#45 0x00007f5027ed18c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#46 0x00007f5027ed5748 in ?? () from /lib/libglib-2.0.so.0
#47 0x00007f5027ed58fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#48 0x00007f502cc98973 in QEventDispatcherGlib::processEvents (this=0x17fb560, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#49 0x00007f502d6e9dee in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#50 0x00007f502cc6b5b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#51 0x00007f502cc6b98c in QEventLoop::exec (this=0x7fffc066ec00, flags=) at kernel/qeventloop.cpp:201
#52 0x00007f502cc6fa3b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#53 0x000000000040e0d7 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../../ark/app/main.cpp:209

Reported using DrKonqi
Comment 1 Mark 2010-06-24 23:12:23 UTC
confirmed on kde4.4.85, Archlinux
Comment 2 Tristan Cenier 2010-06-25 02:24:01 UTC
Created attachment 48305 [details]
New crash information added by DrKonqi

ark (2.15) on KDE Platform 4.4.85 (KDE 4.4.85 (KDE 4.5 Beta2)) using Qt 4.7.0

- What I was doing when the application crashed:

extracting information from a compressed folder into an existing folder containing files with same names. "Extraction into subfolder:" box was purposefully unchecked.

-- Backtrace (Reduced):
#7  QWidget::d_func (this=0x0, enable=false) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:143
#8  QWidget::setEnabled (this=0x0, enable=false) at kernel/qwidget.cpp:3129
#9  0x002aeaad in KIO::RenameDialog::applyAllPressed (this=0x92391b0) at ../../kio/kio/renamedialog.cpp:497
#10 0x002af8b3 in KIO::RenameDialog::qt_metacall (this=0x92391b0, _c=QMetaObject::InvokeMetaMethod, _id=46, _a=0xbfcad028) at ./renamedialog.moc:105
[...]
[...]
#13 0x017eb489 in QAbstractButton::clicked (this=0x91d35a8, _t1=true) at .moc/release-shared/moc_qabstractbutton.cpp:206
Comment 3 Raphael Kubo da Costa 2010-06-25 05:40:34 UTC
SVN commit 1142461 by rkcosta:

Only change the rename and suggest new name buttons if they have been created.

If a RenameDialog is created with M_NORENAME, the rename and suggest new name buttons are
not created, so pressing the "Apply to all" checkbox will crash when trying to access those
pointers.

BUG: 242620
FIXED-IN: 4.5.0


 M  +12 -2     renamedialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1142461
Comment 4 Mark 2010-06-25 12:19:16 UTC
thanks for fixing it this quick! :)