Version: 1.1.80 (using 4.1.68 (KDE 4.1.68 (KDE 4.2 >= 20081001)), Gentoo) Compiler: i686-pc-linux-gnu-gcc OS: Linux (i686) release 2.6.26-gentoo-r1 I was looking at a folder (split view) which had some filenames with "invalid" characters (a questionmark in an white oval-shape instead of the actual character) [I guess due to some encoding problems]). As I was not able to delete or move that file with dolphin (it complained that the file did not exist) I used the console to delete all files in that folder (rm *). Dolphin then crashed with the backtrace below. Regrettably I haven't been able to reproduce this crash so far... Application: Dolphin (dolphin), signal SIGABRT Thread 1 (Thread 0xb602b700 (LWP 9784)): [KCrash Handler] #6 0xffffe424 in __kernel_vsyscall () #7 0xb6346690 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #8 0xb6347ed8 in *__GI_abort () at abort.c:88 #9 0xb7d0c32f in qt_message_output (msgType=QtFatalMsg, buf=0xbf904640 "ASSERT: \"node\" in file /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirmodel.cpp, line 439") at global/qglobal.cpp:2108 #10 0xb7d0c3ee in qFatal (msg=0xb7e55e7c "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2309 #11 0xb7d0c72f in qt_assert (assertion=0xb73cfbc1 "node", file=0xb73cf868 "/var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirmodel.cpp", line=439) at global/qglobal.cpp:1878 #12 0xb72c5e6c in KDirModelPrivate::_k_slotDeleteItems (this=0x819b298, items=@0xbf906878) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirmodel.cpp:439 #13 0xb72c6b8f in KDirModel::qt_metacall (this=0x8157438, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf90684c) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/kdirmodel.moc:77 #14 0xb7e1c4e1 in QMetaObject::activate (sender=0x818ce18, from_signal_index=<value optimized out>, to_signal_index=16, argv=0xbf90684c) at kernel/qobject.cpp:3028 #15 0xb7e1e3d8 in QMetaObject::activate (sender=0x818ce18, m=0x809f230, local_signal_index=12, argv=0xbf90684c) at kernel/qobject.cpp:3098 #16 0xb72af86f in KDirLister::itemsDeleted (this=0x818ce18, _t1=@0xbf906878) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/kdirlister.moc:277 #17 0xb72b05c7 in KDirLister::Private::emitItemsDeleted (this=0x8157378, _items=@0xbf906928) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirlister.cpp:2316 #18 0xb72b6e4d in KDirListerCache::itemsDeleted (this=0x8160690, listers=@0xbf906af4, deletedItems=@0xbf906928) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirlister.cpp:1617 #19 0xb72b6fe2 in KDirListerCache::deleteUnmarkedItems (this=0x8160690, listers=@0xbf906af4, lstItems=@0x859d650) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirlister.cpp:1611 #20 0xb72b7a49 in KDirListerCache::slotUpdateResult (this=0x8160690, j=0x89102d0) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/kdirlister.cpp:1546 #21 0xb72bcb9a in KDirListerCache::qt_metacall (this=0x8160690, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0xbf906c1c) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/kdirlister_p.moc:101 #22 0xb7e1c4e1 in QMetaObject::activate (sender=0x89102d0, from_signal_index=<value optimized out>, to_signal_index=7, argv=0xbf906c1c) at kernel/qobject.cpp:3028 #23 0xb7e1e3d8 in QMetaObject::activate (sender=0x89102d0, m=0x809f220, local_signal_index=3, argv=0xbf906c1c) at kernel/qobject.cpp:3098 #24 0xb7b7f9c5 in KJob::result (this=0x89102d0, _t1=0x89102d0) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kdecore/kjob.moc:186 #25 0xb7b7fe3c in KJob::emitResult (this=0x89102d0) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kdecore/jobs/kjob.cpp:290 #26 0xb7295462 in KIO::SimpleJob::slotFinished (this=0x89102d0) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/job.cpp:489 #27 0xb7295628 in KIO::ListJob::slotFinished (this=0x89102d0) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/job.cpp:2413 #28 0xb7299f3c in KIO::ListJob::qt_metacall (this=0x89102d0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0xbf906e38) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/jobclasses.moc:747 #29 0xb7e1c4e1 in QMetaObject::activate (sender=0x91c3840, from_signal_index=<value optimized out>, to_signal_index=8, argv=0x0) at kernel/qobject.cpp:3028 #30 0xb7e1e3d8 in QMetaObject::activate (sender=0x91c3840, m=0xb73f1e84, local_signal_index=4, argv=0x0) at kernel/qobject.cpp:3098 #31 0xb732f29b in KIO::SlaveInterface::finished (this=0x91c3840) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/slaveinterface.moc:163 #32 0xb7330daf in KIO::SlaveInterface::dispatch (this=0x91c3840, _cmd=104, rawdata=@0xbf906fd4) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/slaveinterface.cpp:175 #33 0xb733183f in KIO::SlaveInterface::dispatch (this=0x91c3840) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/slaveinterface.cpp:91 #34 0xb7324b2f in KIO::Slave::gotInput (this=0x91c3840) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/slave.cpp:322 #35 0xb7325e0d in KIO::Slave::qt_metacall (this=0x91c3840, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf9070f8) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/slave.moc:75 #36 0xb7e1c4e1 in QMetaObject::activate (sender=0x8872720, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3028 #37 0xb7e1e3d8 in QMetaObject::activate (sender=0x8872720, m=0xb73ee960, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3098 #38 0xb726aec1 in KIO::Connection::readyRead (this=0x8872720) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/connection.moc:84 #39 0xb726bb53 in KIO::ConnectionPrivate::dequeue (this=0x8955700) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kio/kio/connection.cpp:82 #40 0xb726c8e0 in KIO::Connection::qt_metacall (this=0x8872720, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x8b67ac8) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs_build/kio/connection.moc:72 #41 0xb7e13edd in QMetaCallEvent::placeMetaCall (this=0x811e740, object=0x8872720) at kernel/qobject.cpp:535 #42 0xb7e15ba7 in QObject::event (this=0x8872720, e=0x811e740) at kernel/qobject.cpp:1152 #43 0xb67c0fab in QApplicationPrivate::notify_helper (this=0x80b1980, receiver=0x8872720, e=0x811e740) at kernel/qapplication.cpp:3809 #44 0xb67c7ae5 in QApplication::notify (this=0xbf90797c, receiver=0x8872720, e=0x811e740) at kernel/qapplication.cpp:3399 #45 0xb79552b1 in KApplication::notify (this=0xbf90797c, receiver=0x8872720, event=0x811e740) at /var/tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kdeui/kernel/kapplication.cpp:307 #46 0xb7e05b21 in QCoreApplication::notifyInternal (this=0xbf90797c, receiver=0x8872720, event=0x811e740) at kernel/qcoreapplication.cpp:593 #47 0xb7e06984 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x80a1310) at kernel/qcoreapplication.h:215 #48 0xb7e06bc3 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1097 #49 0xb68565a1 in QEventDispatcherX11::processEvents (this=0x80acf48, flags={i = -1081050984}) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #50 0xb7e046b0 in QEventLoop::processEvents (this=0xbf907910, flags={i = -1081050920}) at kernel/qeventloop.cpp:149 #51 0xb7e04852 in QEventLoop::exec (this=0xbf907910, flags={i = -1081050856}) at kernel/qeventloop.cpp:200 #52 0xb7e06c6f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:851 #53 0xb67c0d43 in QApplication::exec () at kernel/qapplication.cpp:3337 #54 0x0807e978 in main (argc=6, argv=0xbf907b34) at /var/tmp/portage/kde-base/dolphin-9999/work/dolphin/apps/dolphin/src/main.cpp:94
Ok, it just happened again when I deleted all files in a folder where there were some files with "bad encoded filenames". So I guess it really is related to files which have a filename that is somewhat incorrectly encoded...
Created attachment 27999 [details] Screenshot showing files with invalid filename for bug 173097 One more info: I dont know if its important, but all the files that have invalid names appear *twice* in the folder (both times with the same filename). (see attached screenshot) Konsole also sees both files in the folder.
I'm reassigning to KIO because KDirLister is where the problem seems to be. Oliver, maybe it would help David (or anyone else who is clever enough to debug this...) if you could say how to create such a file or attach an archive containing a small file with a broken name (assuming that the crash is reproducible if you extract that file on another computer).
Thanks Frank for the idea of archiving the files. I already thought about attaching them, but that would have destroyed the filename. Never thought of simply archiving them :-) Anyway, I now uploaded an archive containing one (two) files with invalid filenames tn http://www.oliver-putz.de/bugreports/bug173097InvalidFilenames.tar.bz2 Regrettably I cannot exactly describe how I ended up with the broken filenames in the first place... I often copied these files between different filesystems and between computers with different operating systems that all had different default encodings. (e.g. created it on ISO-8859-15 on reiserfs, copied it to FAT32, moved it from there to another reiserfs with UTF8, from there to another computer with ISO-8859-1, and so on and so forth... I can only guess that at any of these steps something went wrong and the non-ASCII characters got corrupted...)
I cannot duplicate the crash. I can how duplicate the problem with deleting or moving the file using dolphin and I think that happens because of URL encoding/decoding issues which needs to be investigated. Do you still see crash in the more recent versions of KDE (v4.6 and up) ?
Steps to reproduce delete/rename failure: 0. download sample zip: https://bugzilla.novell.com/attachment.cgi?id=511621 1. open Dolphin 2. right click zip file and select "Extract here" or use unzip: "LANG=en_US.UTF-8 unzip -l test.zip" 3. invalid file appears. 4. rename it 5. get error: The file or folder ���.txt does not exist.
Created attachment 74959 [details] Empty trash error If you moved a folder with invalid file to trash you won't be able to empty trash anymore
*** Bug 206761 has been marked as a duplicate of this bug. ***
Has this bug been (partly) fixed in 4.11? I've got two installations of KDE: Ubuntu with 4.10.5 crashes when deleting a file named "\x94" ArchLinux with 4.11.0 can delete the file but KIO-Slaves (fish) are still broken. The test file was created using -- #!/usr/bin/python fo = open("\x94", "wt") fo.write("\x94") fo.close() --
With 4.11, invalid UTF-8 characters in local filenames are handled better, as long as you use a UTF-8 locale. As for KIO filenames, there are probably many places, where we do not use encodeFilename() to convert back to 8-bit encoding. This may, or may not be a bug (technically, not practically).
(In reply to comment #9) > Has this bug been (partly) fixed in 4.11? > I've got two installations of KDE: > Ubuntu with 4.10.5 crashes when deleting a file named "\x94" > ArchLinux with 4.11.0 can delete the file but KIO-Slaves (fish) are still > broken. > > The test file was created using > -- > #!/usr/bin/python > fo = open("\x94", "wt") > fo.write("\x94") > fo.close() > -- As far as I know, kio_fish has no maintainer. I presume you use kio_fish for ssh connection, if so you and everyone else should be using kio_sftp which is actively maintained and should work correctly for your use case.
I still have the problem with latest KDE Plasma/Applications/Frameworks stack. I can provide file than can reproduce the problem. It’s a real usability problem that users must use command line to make something with a file.
Created attachment 111886 [details] directory testcase for the bug This is a directory that after it is deleted, cannot be emptied from the trash / wastebin by dolphin - tested on Mageia x7 x86-64 with kf5/plasma5. Annoying.
A few days ago I could not delete nor open a vídeo file containing an invalid character in its name on Arch Linux, Dolphin 17.12.3, frameworks 5.44. Dolphin shown the error "file not found".
Could be solved with bug 204768, while the underlying real issue (bug 165044) cannot be fixed, see bug 165044 comment #159.
link from comment 159 gives "page not found". Why can pcmanfm-qt delete/rename a file containing invalid character and Dolphin not?
@Dr. Chapatin: The new link would be http://doc.qt.io/qt-5/qfile-obsolete.html#setEncodingFunction . Basically the Qt project considered the function flawed, and it does nothing anymore in Qt 5. Thus, with Qt it is pretty much impossible to handle non-unicode filenames. I wrote a bit in a mail about this at https://mail.kde.org/pipermail/kde-frameworks-devel/2018-April/061092.html Now why does pcmanfm-qt handle this case? Well, pcmanfm-qt doesn't use KIO or Qt's file handling functionality, but instead uses libfm-qt, which wraps the from GIO. GIO is GTK+'s input/output abstraction library, and it happens to be file encoding agnostic. Unfortunately, it is not possible to simply switch out KIO with GIO in Dolphin, without a massive rewrite of the application; and even if we did it, we might lose some functionality that GIO in turn lacks and that KIO provides.
*** This bug has been marked as a duplicate of bug 204768 ***