Bug 245785 - Crash when moving a file with KIO::move and the target exists
Summary: Crash when moving a file with KIO::move and the target exists
Status: RESOLVED WORKSFORME
Alias: None
Product: kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-26 14:57 UTC by Volker Lanz
Modified: 2010-08-13 10:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Minimal app to demonstrate the crash (4.02 KB, application/octet-stream)
2010-07-26 14:57 UTC, Volker Lanz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Volker Lanz 2010-07-26 14:57:16 UTC
Created attachment 49488 [details]
Minimal app to demonstrate the crash

Version:           unspecified (using KDE 4.4.92) 
OS:                Linux

This snippet:

----
KIO::Job* job = KIO::move(source, target,  KIO::HideProgressInfo);
----

crashes reproducably for me on KDE 4.5RC2 if the target already exists. In maybe about 1 in 20 cases the "do you want to overwrite, compare the files, look here" dialog is actually shown without a crash.

Specifying the KIO::Overwrite flag makes the crash go away. Apps like Dolphin or Kate apparently do that, so it's not noticable there, but I'd rather not use my own file-exists-checking-code in my app.

The backtrace seems to indicate some relationship with strigi. I have that turned off, though.


Backtrace:

Application:  (kiocrash), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f7030533760 (LWP 8606))]

Thread 2 (Thread 0x7f701d06f710 (LWP 8610)):
[KCrash Handler]
#4  std::string::_Rep::_M_is_leaked (this=0x16ada18, __str=...) at /build/buildd/gcc-4.4-4.4.3/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.h:184
#5  std::string::_Rep::_M_grab (this=0x16ada18, __str=...) at /build/buildd/gcc-4.4-4.4.3/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.h:216
#6  basic_string (this=0x16ada18, __str=...) at /build/buildd/gcc-4.4-4.4.3/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:174
#7  0x00007f702a64a92c in Mime (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventanalyzers/mimeeventanalyzer.cpp:67
#8  uninitialized_copy<Mime*, Mime*> (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /usr/include/c++/4.4/bits/stl_uninitialized.h:74
#9  uninitialized_copy<Mime*, Mime*> (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /usr/include/c++/4.4/bits/stl_uninitialized.h:117
#10 __uninitialized_copy_a<Mime*, Mime*, Mime> (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /usr/include/c++/4.4/bits/stl_uninitialized.h:257
#11 __uninitialized_move_a<Mime*, Mime*, std::allocator<Mime> > (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /usr/include/c++/4.4/bits/stl_uninitialized.h:267
#12 std::vector<Mime, std::allocator<Mime> >::_M_insert_aux (this=0x169b388, __position=<value optimized out>, __x=<value optimized out>) at /usr/include/c++/4.4/bits/vector.tcc:344
#13 0x00007f702a649747 in std::vector<Mime, std::allocator<Mime> >::push_back (this=<value optimized out>, file=...) at /usr/include/c++/4.4/bits/stl_vector.h:741
#14 Strigi::MimeEventAnalyzer::Private::parseFile (this=<value optimized out>, file=...) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventanalyzers/mimeeventanalyzer.cpp:268
#15 0x00007f702a6498d3 in Strigi::MimeEventAnalyzer::Private::parseFiles (this=0x169b380) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventanalyzers/mimeeventanalyzer.cpp:121
#16 0x00007f702a649ad2 in Strigi::MimeEventAnalyzer::startAnalysis (this=0x169b320, ar=0x7f701d86f930) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventanalyzers/mimeeventanalyzer.cpp:274
#17 0x00007f702a611de2 in Strigi::EventThroughAnalyzer::connectInputStream (this=0x16a6b00, in=0x7f701d06e880) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventthroughanalyzer.cpp:56
#18 0x00007f702a62a032 in Strigi::StreamAnalyzerPrivate::analyze (this=<value optimized out>, idx=..., input=0x7f701d06e880) at /build/buildd/strigi-0.7.2/src/streamanalyzer/streamanalyzer.cpp:395
#19 0x00007f702f72b5e5 in KFileMetaInfoPrivate::init (this=0x15f28c0, stream=<value optimized out>, url=<value optimized out>, mtime=<value optimized out>, w=<value optimized out>)
    at ../../kio/kio/kfilemetainfo.cpp:210
#20 0x00007f702f72d2f3 in KFileMetaInfo (this=0x7f701d06ecf0, path=..., w=<value optimized out>) at ../../kio/kio/kfilemetainfo.cpp:237
#21 0x00007f702f817212 in KLoadFileMetaDataThread::run (this=<value optimized out>) at ../../kio/kfile/kloadfilemetadatathread.cpp:124
#22 0x00007f702d57d1be in QThreadPrivate::start (arg=0x1135f60) at thread/qthread_unix.cpp:266
#23 0x00007f702d2eb9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#24 0x00007f702c3246fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#25 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f7030533760 (LWP 8606)):
#0  0x00007f702c317f83 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f7027c0f29a in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f7027c10c2c in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#3  0x00007f702bb2e8d3 in _XReply () from /usr/lib/libX11.so.6
#4  0x00007f702bb23c8d in XTranslateCoordinates () from /usr/lib/libX11.so.6
#5  0x00007f702e0dd6bb in QWidget::mapToGlobal (this=0x7fff097ca280, pos=<value optimized out>) at kernel/qwidget_x11.cpp:1308
#6  0x00007f702e0dd612 in QWidget::mapToGlobal (this=0x1137780, pos=...) at kernel/qwidget_x11.cpp:1301
#7  0x00007f702e0d78fd in QDesktopWidget::screenNumber (this=<value optimized out>, widget=0x1137780) at kernel/qdesktopwidget_x11.cpp:347
#8  0x00007f702ff5f60a in KGlobalSettings::desktopGeometry (w=0x1137780) at ../../kdeui/kernel/kglobalsettings.cpp:731
#9  0x00007f7030031060 in KSqueezedTextLabel::sizeHint (this=0x7fff097c71c0) at ../../kdeui/widgets/ksqueezedtextlabel.cpp:81
#10 0x00007f702e073259 in QWidgetItemV2::updateCacheIfNecessary (this=0x15d0210) at kernel/qlayoutitem.cpp:702
#11 0x00007f702e073ef8 in QWidgetItemV2::minimumSize (this=0x15d0210) at kernel/qlayoutitem.cpp:777
#12 0x00007f702e068694 in QGridBox::minimumSize (this=0x119db90, hSpacing=<value optimized out>, vSpacing=<value optimized out>) at kernel/qgridlayout.cpp:76
#13 QGridLayoutPrivate::setupLayoutData (this=0x119db90, hSpacing=<value optimized out>, vSpacing=<value optimized out>) at kernel/qgridlayout.cpp:790
#14 0x00007f702e0692d5 in QGridLayoutPrivate::findSize (this=0x7fff097c71c0, size=&QLayoutStruct::maximumSize, hSpacing=1, vSpacing=-1) at kernel/qgridlayout.cpp:423
#15 0x00007f702e069432 in QGridLayoutPrivate::maximumSize (this=0x7fff097c71c0, hSpacing=<value optimized out>, vSpacing=<value optimized out>) at kernel/qgridlayout.cpp:467
#16 0x00007f702e069487 in QGridLayout::maximumSize (this=0x11e0540) at kernel/qgridlayout.cpp:1316
#17 0x00007f702e04d7f3 in QBoxLayoutPrivate::setupGeom (this=0x10c9890) at kernel/qboxlayout.cpp:304
#18 0x00007f702e04e726 in QBoxLayout::minimumSize (this=<value optimized out>) at kernel/qboxlayout.cpp:686
#19 0x00007f702e06f971 in QLayout::totalMinimumSize (this=0x10241f0) at kernel/qlayout.cpp:823
#20 0x00007f702e06fddf in QLayout::activate (this=0x10241f0) at kernel/qlayout.cpp:1230
#21 0x00007f702e03dc9e in QApplicationPrivate::notify_helper (this=0xdd0a60, receiver=0x7fff097ca280, e=0x1364860) at kernel/qapplication.cpp:4380
#22 0x00007f702e0437cd in QApplication::notify (this=0x7fff097cbd40, receiver=0x7fff097ca280, e=0x1364860) at kernel/qapplication.cpp:4270
#23 0x00007f702ff38926 in KApplication::notify (this=0x7fff097cbd40, receiver=0x7fff097ca280, event=0x1364860) at ../../kdeui/kernel/kapplication.cpp:309
#24 0x00007f702d66fa8c in QCoreApplication::notifyInternal (this=0x7fff097cbd40, receiver=0x7fff097ca280, event=0x1364860) at kernel/qcoreapplication.cpp:732
#25 0x00007f702d6729b2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0xdbab60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#26 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0xdbab60) at kernel/qcoreapplication.cpp:1373
#27 0x00007f702d69c043 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#28 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#29 0x00007f70293b68c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007f70293ba748 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007f70293ba8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x00007f702d69bb83 in QEventDispatcherGlib::processEvents (this=0xdba270, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#33 0x00007f702e0ef7ee in QGuiEventDispatcherGlib::processEvents (this=0x7fff097c71c0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007f702d66e7b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#35 0x00007f702d66eb9c in QEventLoop::exec (this=0x7fff097ca1d0, flags=) at kernel/qeventloop.cpp:201
#36 0x00007f702e529dce in QDialog::exec (this=0x7fff097ca280) at dialogs/qdialog.cpp:546
#37 0x00007f702f6e2143 in KIO::JobUiDelegate::askFileRename (this=<value optimized out>, job=0x156b720, caption=..., src=..., dest=<value optimized out>, mode=<value optimized out>, newDest=...,
    sizeSrc=226, sizeDest=609, ctimeSrc=1272361394, ctimeDest=1274365544, mtimeSrc=1272361394, mtimeDest=1274365544) at ../../kio/kio/jobuidelegate.cpp:83
#38 0x00007f702f6ad950 in KIO::CopyJobPrivate::slotResultRenaming (this=<value optimized out>, job=<value optimized out>) at ../../kio/kio/copyjob.cpp:1903
#39 0x00007f702f6a5ec7 in KIO::CopyJob::qt_metacall (this=0x156b720, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff097cab50) at ./copyjob.moc:121
#40 0x00007f702d6877a7 in QMetaObject::activate (sender=0x11a7f00, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280
#41 0x00007f702dacd702 in KJob::result (this=0x7fff097c71c0, _t1=0x11a7f00) at ./kjob.moc:194
#42 0x00007f702dacd9a0 in KJob::emitResult (this=0x11a7f00) at ../../kdecore/jobs/kjob.cpp:312
#43 0x00007f702f6d68a3 in KIO::SimpleJob::slotFinished (this=0x11a7f00) at ../../kio/kio/job.cpp:522
#44 0x00007f702f6d4c76 in KIO::SimpleJob::slotError (this=0x11a7f00, err=<value optimized out>, errorText=...) at ../../kio/kio/job.cpp:534
#45 0x00007f702f6d4db8 in KIO::SimpleJob::qt_metacall (this=0x11a7f00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff097cae20) at ./jobclasses.moc:170
#46 0x00007f702d6877a7 in QMetaObject::activate (sender=0x11abbb0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280
#47 0x00007f702f783936 in KIO::SlaveInterface::error (this=0x7fff097c71c0, _t1=112, _t2=<value optimized out>) at ./slaveinterface.moc:159
#48 0x00007f702f786c6a in KIO::SlaveInterface::dispatch (this=0x11abbb0, _cmd=102, rawdata=...) at ../../kio/kio/slaveinterface.cpp:208
#49 0x00007f702f783c33 in KIO::SlaveInterface::dispatch (this=0x11abbb0) at ../../kio/kio/slaveinterface.cpp:91
#50 0x00007f702f7777e6 in KIO::Slave::gotInput (this=0x11abbb0) at ../../kio/kio/slave.cpp:344
#51 0x00007f702f7779cc in KIO::Slave::qt_metacall (this=0x11abbb0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff097cb240) at ./slave.moc:82
#52 0x00007f702d6877a7 in QMetaObject::activate (sender=0x10c9420, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3280
#53 0x00007f702f6a34b7 in KIO::ConnectionPrivate::dequeue (this=0x122fe50) at ../../kio/kio/connection.cpp:82
#54 0x00007f702f6a35dd in KIO::Connection::qt_metacall (this=0x10c9420, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x129ab00) at ./connection.moc:79
#55 0x00007f702d68187e in QObject::event (this=0x10c9420, e=0x7fff097c71c0) at kernel/qobject.cpp:1219
#56 0x00007f702e03dcdc in QApplicationPrivate::notify_helper (this=0xdd0a60, receiver=0x10c9420, e=0x11aac90) at kernel/qapplication.cpp:4389
#57 0x00007f702e0437cd in QApplication::notify (this=0x7fff097cbd40, receiver=0x10c9420, e=0x11aac90) at kernel/qapplication.cpp:4270
#58 0x00007f702ff38926 in KApplication::notify (this=0x7fff097cbd40, receiver=0x10c9420, event=0x11aac90) at ../../kdeui/kernel/kapplication.cpp:309
#59 0x00007f702d66fa8c in QCoreApplication::notifyInternal (this=0x7fff097cbd40, receiver=0x10c9420, event=0x11aac90) at kernel/qcoreapplication.cpp:732
#60 0x00007f702d6729b2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0xdbab60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#61 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0xdbab60) at kernel/qcoreapplication.cpp:1373
#62 0x00007f702d69c043 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#63 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#64 0x00007f70293b68c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#65 0x00007f70293ba748 in ?? () from /lib/libglib-2.0.so.0
#66 0x00007f70293ba8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#67 0x00007f702d69bb83 in QEventDispatcherGlib::processEvents (this=0xdba270, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#68 0x00007f702e0ef7ee in QGuiEventDispatcherGlib::processEvents (this=0x7fff097c71c0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#69 0x00007f702d66e7b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#70 0x00007f702d66eb9c in QEventLoop::exec (this=0x7fff097cbc90, flags=) at kernel/qeventloop.cpp:201
#71 0x00007f702d672c4b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#72 0x0000000000403189 in main (argc=<value optimized out>, argv=<value optimized out>) at /home/vl/tmp/kiocrash/main.cpp:17


Reproducible: Always
Comment 1 Nicolas L. 2010-08-12 22:47:13 UTC
with kde 4.5.0 it doesn't crash it asks me to provide a new name
Comment 2 Volker Lanz 2010-08-13 10:48:03 UTC
Appears to have been fixed in 4.5.0