Bug 482145 - plasma crashes in KNewFileMenu::slotResult when creating folder on Desktop with the same name as an existing one
Summary: plasma crashes in KNewFileMenu::slotResult when creating folder on Desktop wi...
Status: RESOLVED FIXED
Alias: None
Product: frameworks-kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 6.0.0
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: KIO Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-01 12:41 UTC by Valeriy
Modified: 2024-03-04 11:13 UTC (History)
6 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Valeriy 2024-03-01 12:41:57 UTC
When you try to create a folder on the desktop, at a time when a folder with the same name already exists, plasma will crash.
How to reproduce it:
1) Create folder on Desktop, for sample "test_folder".
2) Create it again with the same name.
Comment 1 Nicolas Fella 2024-03-01 18:24:49 UTC
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140033862897600) at ./nptl/pthread_kill.c:44
#7  __pthread_kill_internal (signo=6, threadid=140033862897600) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=140033862897600, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x00007f5c30a42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x00007f5c30a287f3 in __GI_abort () at ./stdlib/abort.c:79
#11 0x00007f5c316db017 in qAbort () at ./src/corelib/global/qglobal.cpp:161
#12 0x00007f5c316d64e5 in qt_message_fatal<QString&> (message=..., context=...) at ./src/corelib/global/qlogging.cpp:2003
#13 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=..., msg=<optimized out>, ap=ap@entry=0x7ffd3b1055c0) at ./src/corelib/global/qlogging.cpp:378
#14 0x00007f5c316dba43 in QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at ./src/corelib/global/qlogging.cpp:901
#15 0x00007f5c316a9c94 in qt_assert (assertion=assertion@entry=0x7f5c2bbb2508 "d->m_selectDirWhenAlreadyExists", file=file@entry=0x7f5c2bbb1f28 "./src/filewidgets/knewfilemenu.cpp", line=line@entry=1500) at ./src/corelib/global/qassert.cpp:68
#16 0x00007f5c2bb09306 in KNewFileMenu::slotResult (this=0x560931e66340, job=0x560931e92840) at ./src/filewidgets/knewfilemenu.cpp:1500
#17 0x00007f5c3162b7ce in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:433
#18 doActivate<false> (sender=0x560931e92840, signal_index=6, argv=0x7ffd3b105880) at ./src/corelib/kernel/qobject.cpp:4039
#19 0x00007f5c3219c870 in KJob::result (this=this@entry=0x560931e92840, _t1=<optimized out>, _t1@entry=0x560931e92840, _t2=...) at ./obj-x86_64-linux-gnu/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:793
#20 0x00007f5c321a063b in KJob::finishJob (this=0x560931e92840, emitResult=<optimized out>) at ./src/lib/jobs/kjob.cpp:98
#21 0x00007f5c3162b7ce in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:433
#22 doActivate<false> (sender=0x560931fe3000, signal_index=5, argv=0x7ffd3b1059b0) at ./src/corelib/kernel/qobject.cpp:4039
#23 0x00007f5c30d6a95a in KIO::WorkerInterface::error (this=this@entry=0x560931fe3000, _t1=<optimized out>, _t2=...) at ./obj-x86_64-linux-gnu/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:627
#24 0x00007f5c30d70aec in KIO::WorkerInterface::dispatch (this=0x560931fe3000, _cmd=102, rawdata=...) at ./src/core/workerinterface.cpp:161
#25 0x00007f5c30d6d533 in KIO::WorkerInterface::dispatch (this=0x560931fe3000) at ./src/core/workerinterface.cpp:60
#26 0x00007f5c30d6c8aa in KIO::Worker::gotInput (this=0x560931fe3000) at ./src/core/worker.cpp:263
#27 0x00007f5c3162b7ce in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:433
#28 doActivate<false> (sender=0x5609319901e0, signal_index=3, argv=0x7ffd3b105d08) at ./src/corelib/kernel/qobject.cpp:4039
#29 0x00007f5c315c9572 in QObject::event (this=0x5609319901e0, e=0x5609333edfc0) at ./src/corelib/kernel/qobject.cpp:1437
#30 0x00007f5c335f40eb in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5609319901e0, e=0x5609333edfc0) at ./src/widgets/kernel/qapplication.cpp:3296
Comment 2 Nicolas Fella 2024-03-01 18:25:47 UTC
ASSERT: "d->m_selectDirWhenAlreadyExists" in file ./src/filewidgets/knewfilemenu.cpp, line 1500
Comment 3 Bug Janitor Service 2024-03-02 16:56:49 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/1567
Comment 4 Méven Car 2024-03-04 11:13:55 UTC
Git commit e36aa0073d8620b09fd0ff5a335c5ea21d23d32b by Méven Car, on behalf of Nicolas Fella.
Committed on 04/03/2024 at 09:44.
Pushed by nicolasfella into branch 'master'.

[knewfilemenu] Fix error handling when creating a folder that already exists

And setSelectDirWhenAlreadyExist is not set

In that case we want to do the error handling (and not assert)

M  +1    -2    src/filewidgets/knewfilemenu.cpp

https://invent.kde.org/frameworks/kio/-/commit/e36aa0073d8620b09fd0ff5a335c5ea21d23d32b