Bug 446636 - Crush when creating a file/folder with a medium to long name
Summary: Crush when creating a file/folder with a medium to long name
Status: RESOLVED DUPLICATE of bug 433993
Alias: None
Product: kio-gdrive
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 21.08.3
Platform: Neon Linux
: NOR critical
Target Milestone: ---
Assignee: Elvis Angelaccio
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-07 19:18 UTC by rimqoztqwjxpfpbnml
Modified: 2021-12-14 21:54 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
. (1.47 MB, video/mp4)
2021-12-07 19:27 UTC, rimqoztqwjxpfpbnml
Details

Note You need to log in before you can comment on or make changes to this bug.
Description rimqoztqwjxpfpbnml 2021-12-07 19:18:26 UTC
When I right-click and type the name of a file/folder to create one, the client starts looking for coincidences in order to show a red message below saying that that name is already taken (if it is the case). However, it is very inefficient, since it makes that search for every individual character you enter, and I know that because a notification pops up every time I press a key.
If the file/folder has a medium to long name, Dolphin will crush when you press “enter” or click on “create“.
The program should only look for coincidences after the user decides to create the file/folder; not while they is typing its name.

I imagine that, if your Drive account doesn't have a lot of files, the search process will not take as long as in my case, so, if you can't reproduce the bug, try creating a lot of documents or something.

On KDE neon User - Plasma 25th Anniversary Edition.

Thanks! Here is a video of me reproducing the bug.
Comment 1 rimqoztqwjxpfpbnml 2021-12-07 19:27:40 UTC
Created attachment 144318 [details]
.
Comment 2 Nicolas Fella 2021-12-14 00:44:49 UTC
I can reproduce this

#0  QLineEdit::text (this=<optimized out>) at widgets/qlineedit.cpp:312
#1  0x00007ffff7dbec0a in KNewFileMenuPrivate::_k_slotStatResult (this=0x555555e12320, job=0x555556adb5b0) at /home/nico/kde/src/kio/src/filewidgets/knewfilemenu.cpp:1278
#2  0x00007ffff7dbdfde in operator() (__closure=0x555556817530, job=0x555556adb5b0) at /home/nico/kde/src/kio/src/filewidgets/knewfilemenu.cpp:1255
#3  0x00007ffff7dc4b2d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KJob*>, void, KNewFileMenuPrivate::_k_slotTextChanged(const QString&)::<lambda(KJob*)> >::call(struct {...} &, void **) (f=..., arg=0x7fffffffcc70) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:146
#4  0x00007ffff7dc4142 in QtPrivate::Functor<KNewFileMenuPrivate::_k_slotTextChanged(const QString&)::<lambda(KJob*)>, 1>::call<QtPrivate::List<KJob*>, void>(struct {...} &, void *, void **) (f=..., 
    arg=0x7fffffffcc70) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:256
#5  0x00007ffff7dc3544 in QtPrivate::QFunctorSlotObject<KNewFileMenuPrivate::_k_slotTextChanged(const QString&)::<lambda(KJob*)>, 1, QtPrivate::List<KJob*>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x555556817520, r=0x555555e321f0, a=0x7fffffffcc70, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:443
#6  0x00007ffff50d9463 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffcc70, r=0x555555e321f0, this=0x555556817520) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#7  doActivate<false> (sender=0x555556adb5b0, signal_index=6, argv=0x7fffffffcc70) at kernel/qobject.cpp:3886
#8  0x00007ffff6589580 in KJob::result (this=0x555556adb5b0, _t1=0x555556adb5b0, _t2=...) at src/lib/KF5CoreAddons_autogen/include/moc_kjob.cpp:633
#9  0x00007ffff65894ec in KJob::finishJob (this=0x555556adb5b0, emitResult=true) at /home/nico/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:98
#10 0x00007ffff658ab04 in KJob::emitResult (this=0x555556adb5b0) at /home/nico/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:337
#11 0x00007ffff73debb3 in KIO::SimpleJob::slotFinished (this=0x555556adb5b0) at /home/nico/kde/src/kio/src/core/simplejob.cpp:233
#12 0x00007ffff73e2b44 in KIO::StatJob::slotFinished (this=0x555556adb5b0) at /home/nico/kde/src/kio/src/core/statjob.cpp:204
#13 0x00007ffff73decf0 in KIO::SimpleJob::slotError (this=0x555556adb5b0, err=111, errorText=...) at /home/nico/kde/src/kio/src/core/simplejob.cpp:246
#14 0x00007ffff73e1947 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<int, QString const&>, void, void (KIO::SimpleJob::*)(int, QString const&)>::call (f=
    (void (KIO::SimpleJob::*)(KIO::SimpleJob * const, int, const QString &)) 0x7ffff73debda <KIO::SimpleJob::slotError(int, QString const&)>, o=0x555556adb5b0, arg=0x7fffffffd060)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
#15 0x00007ffff73e1773 in QtPrivate::FunctionPointer<void (KIO::SimpleJob::*)(int, QString const&)>::call<QtPrivate::List<int, QString const&>, void> (f=
    (void (KIO::SimpleJob::*)(KIO::SimpleJob * const, int, const QString &)) 0x7ffff73debda <KIO::SimpleJob::slotError(int, QString const&)>, o=0x555556adb5b0, arg=0x7fffffffd060)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:185
#16 0x00007ffff73e14bd in QtPrivate::QSlotObject<void (KIO::SimpleJob::*)(int, QString const&), QtPrivate::List<int, QString const&>, void>::impl (which=1, this_=0x555556ae9990, r=0x555556adb5b0, 
    a=0x7fffffffd060, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:418
#17 0x00007ffff50d9463 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd060, r=0x555556adb5b0, this=0x555556ae9990) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false> (sender=0x55555698e940, signal_index=5, argv=0x7fffffffd060) at kernel/qobject.cpp:3886
#19 0x00007ffff73bec29 in KIO::SlaveInterface::error (this=0x55555698e940, _t1=111, _t2=...) at /home/nico/kde/build/kio/src/core/KF5KIOCore_autogen/include/moc_slaveinterface.cpp:452
#20 0x00007ffff73bc714 in KIO::SlaveInterface::dispatch (this=0x55555698e940, _cmd=102, rawdata=...) at /home/nico/kde/src/kio/src/core/slaveinterface.cpp:181
#21 0x00007ffff73bc17b in KIO::SlaveInterface::dispatch (this=0x55555698e940) at /home/nico/kde/src/kio/src/core/slaveinterface.cpp:78
#22 0x00007ffff73c0f10 in KIO::Slave::gotInput (this=0x55555698e940) at /home/nico/kde/src/kio/src/core/slave.cpp:337
#23 0x00007ffff73c25c9 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KIO::Slave::*)()>::call(void (KIO::Slave::*)(), KIO::Slave*, void**) (
    f=(void (KIO::Slave::*)(KIO::Slave * const)) 0x7ffff73c0eae <KIO::Slave::gotInput()>, o=0x55555698e940, arg=0x7fffffffd390) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
#24 0x00007ffff73c254c in QtPrivate::FunctionPointer<void (KIO::Slave::*)()>::call<QtPrivate::List<>, void>(void (KIO::Slave::*)(), KIO::Slave*, void**) (
    f=(void (KIO::Slave::*)(KIO::Slave * const)) 0x7ffff73c0eae <KIO::Slave::gotInput()>, o=0x55555698e940, arg=0x7fffffffd390) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:185
#25 0x00007ffff73c24b7 in QtPrivate::QSlotObject<void (KIO::Slave::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555556aeb3b0, 
    r=0x55555698e940, a=0x7fffffffd390, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:418
#26 0x00007ffff50d9463 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd390, r=0x55555698e940, this=0x555556aeb3b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#27 doActivate<false> (sender=0x5555557a55c0, signal_index=3, argv=0x7fffffffd390) at kernel/qobject.cpp:3886
#28 0x00007ffff73507af in KIO::Connection::readyRead (this=0x5555557a55c0) at /home/nico/kde/build/kio/src/core/KF5KIOCore_autogen/include/moc_connection_p.cpp:148
#29 0x00007ffff734f2d8 in KIO::ConnectionPrivate::dequeue (this=0x55555671c880) at /home/nico/kde/src/kio/src/core/connection.cpp:31
#30 0x00007ffff73505aa in KIO::Connection::qt_static_metacall (_o=0x5555557a55c0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x555556b6bcc8)
    at /home/nico/kde/build/kio/src/core/KF5KIOCore_autogen/include/moc_connection_p.cpp:88
#31 0x00007ffff50cf40e in QObject::event (this=0x5555557a55c0, e=0x555556b6bc80) at kernel/qobject.cpp:1314
#32 0x00007ffff5bd269f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555557a55c0, e=0x555556b6bc80) at kernel/qapplication.cpp:3632
#33 0x00007ffff50a2d2a in QCoreApplication::notifyInternal2 (receiver=0x5555557a55c0, event=0x555556b6bc80) at kernel/qcoreapplication.cpp:1064
#34 0x00007ffff50a5d77 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5555556ad5f0) at kernel/qcoreapplication.cpp:1821
#35 0x00007ffff50fac93 in postEventSourceDispatch (s=0x555555706680) at kernel/qeventdispatcher_glib.cpp:277
#36 0x00007ffff11c54dc in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
Comment 3 Nicolas Fella 2021-12-14 00:49:21 UTC

*** This bug has been marked as a duplicate of bug 433993 ***
Comment 4 Nicolas Fella 2021-12-14 21:54:51 UTC
For the notification flood: https://invent.kde.org/frameworks/kio/-/merge_requests/665