Application: filelight (22.12.0) Qt Version: 5.15.7 Frameworks Version: 5.101.0 Operating System: Linux 5.15.85-1-lts x86_64 Windowing System: Wayland Distribution: "Arch Linux" DrKonqi: 5.26.4 [KCrashBackend] -- Information about the crash: A crash may occur, when hovering over different items after triggering a rescan. To reproduce: 1. Scan a directory with a lot of contents. 2. Hover over some item, causing a tooltip to appear. 3. Rightclick on any item and trigger a rescan. Wait for it to complete. 4. Hover over some other item(s). A crash should happen eventually. Not all items cause a crash, but I've found that it's consistent in which ones do. I can reproduce this on a computer with an AMD cpu and gpu that runs wayland, and a laptop with an Intel cpu and igpu that runs xorg. Both run the same OS and KDE version. The attached trace information is from the amd/wayland computer, I will add the trace information from the intel/xorg laptop. The crash can be reproduced every time. -- Backtrace: Application: Filelight (filelight), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #6 File::parent (this=0x0) at /usr/src/debug/filelight/filelight-22.12.0/src/fileTree.h:40 #7 RadialMap::Item::paintExplodedLabels (paint=..., this=0x557ca500c4b0) at /usr/src/debug/filelight/filelight-22.12.0/src/radialMap/item.cpp:431 #8 RadialMap::Item::paint (this=0x557ca500c4b0, painter=0x7f6ba0d09658) at /usr/src/debug/filelight/filelight-22.12.0/src/radialMap/item.cpp:409 #9 0x00007f6bd8a5015d in QSGDefaultPainterNode::paint (this=this@entry=0x7f6b883988f0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/util/qsgdefaultpainternode.cpp:188 #10 0x00007f6bd8a51b10 in QSGDefaultPainterNode::update (this=0x7f6b883988f0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/util/qsgdefaultpainternode.cpp:216 #11 0x00007f6bd8abf71d in QQuickPaintedItem::updatePaintNode (this=<optimized out>, oldNode=<optimized out>, data=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickpainteditem.cpp:610 #12 0x00007f6bd8aba6a8 in QQuickWindowPrivate::updateDirtyNode (this=0x557ca4e6cd40, item=0x557ca500c4b0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3877 #13 0x00007f6bd8abaeb5 in QQuickWindowPrivate::updateDirtyNodes (this=0x557ca4e6cd40) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3622 #14 0x00007f6bd8aa82a9 in QQuickWindowPrivate::syncSceneGraph (this=0x557ca4e6cd40) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:524 #15 0x00007f6bd8a57718 in QSGRenderThread::sync (inGrab=<optimized out>, inExpose=false, this=0x557ca51e29a0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:646 #16 QSGRenderThread::syncAndRender (this=0x557ca51e29a0, grabImage=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:777 #17 0x00007f6bd8a5bea4 in QSGRenderThread::run (this=0x557ca51e29a0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1042 #18 0x00007f6bd79022ea in QThreadPrivate::start (arg=0x557ca51e29a0) at thread/qthread_unix.cpp:330 #19 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #20 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 13 (Thread 0x7f6ba150b6c0 (LWP 14132) "filelight:gl0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca56e0df0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca56e0df0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca56e0da0, cond=0x557ca56e0dc8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca56e0dc8, mutex=0x557ca56e0da0) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 12 (Thread 0x7f6ba37fe6c0 (LWP 14131) "fileligh:gdrv0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca56acec0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca56acec0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca56ace70, cond=0x557ca56ace98) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca56ace98, mutex=0x557ca56ace70) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 11 (Thread 0x7f6ba3fff6c0 (LWP 14130) "filelight:gl0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca5612fe0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca5612fe0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca5612f90, cond=0x557ca5612fb8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca5612fb8, mutex=0x557ca5612f90) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 10 (Thread 0x7f6bb8c966c0 (LWP 14129) "fileligh:gdrv0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca55df0b0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca55df0b0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca55df060, cond=0x557ca55df088) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca55df088, mutex=0x557ca55df060) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 9 (Thread 0x7f6bb94976c0 (LWP 14128) "QQmlThread"): #1 0x00007ffe60dc799c in clock_gettime () #2 0x00007f6bd73e36bd in __GI___clock_gettime (clock_id=<optimized out>, tp=tp@entry=0x7f6bb9496890) at ../sysdeps/unix/sysv/linux/clock_gettime.c:42 #3 0x00007f6bd6066429 in sysprof_clock_get_current_time () at /usr/include/sysprof-4/sysprof-clock.h:88 #4 g_main_context_prepare (context=0x7f6ba8000c30, priority=0x7f6bb9496948) at ../glib/glib/gmain.c:3772 #5 0x00007f6bd60bda56 in g_main_context_iterate.constprop.0 (context=0x7f6ba8000c30, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4228 #6 0x00007f6bd6065132 in g_main_context_iteration (context=0x7f6ba8000c30, may_block=1) at ../glib/glib/gmain.c:4313 #7 0x00007f6bd7af5c6f in QEventDispatcherGlib::processEvents (this=0x7f6ba8000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #8 0x00007f6bd7aa373c in QEventLoop::exec (this=0x7f6bb9496aa0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #9 0x00007f6bd790521f in QThread::exec (this=this@entry=0x557ca4e04070) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #10 0x00007f6bd871a370 in QQmlThreadPrivate::run (this=0x557ca4e04070) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:155 #11 0x00007f6bd79022ea in QThreadPrivate::start (arg=0x557ca4e04070) at thread/qthread_unix.cpp:330 #12 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #13 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 8 (Thread 0x7f6bb9c986c0 (LWP 14123) "fileligh:shlo0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca4cc67c4, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca4cc67c4, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca4cc6770, cond=0x557ca4cc6798) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca4cc6798, mutex=0x557ca4cc6770) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 7 (Thread 0x7f6bba4996c0 (LWP 14122) "filelight:sh0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca4cc6254, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca4cc6254, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca4cc6200, cond=0x557ca4cc6228) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca4cc6228, mutex=0x557ca4cc6200) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 6 (Thread 0x7f6bbac9a6c0 (LWP 14121) "filelig:disk$0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca4d323b8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca4d323b8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca4d32368, cond=0x557ca4d32390) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca4d32390, mutex=0x557ca4d32368) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 5 (Thread 0x7f6bbb49b6c0 (LWP 14120) "filelight:cs0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca4cb69c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca4cb69c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca4cb6978, cond=0x557ca4cb69a0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca4cb69a0, mutex=0x557ca4cb6978) at pthread_cond_wait.c:618 #5 0x00007f6bc266350e in cnd_wait () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:135 #6 0x00007f6bc261389c in util_queue_thread_func () at ../mesa-22.3.1/src/util/u_queue.c:290 #7 0x00007f6bc266343c in impl_thrd_routine () at ../mesa-22.3.1/src/c11/impl/threads_posix.c:67 #8 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7f6bd12d16c0 (LWP 14119) "WaylandEventThr"): #1 0x00007f6bd59bad0d in poll (__timeout=-1, __nfds=2, __fds=0x7f6bd12d0ab0) at /usr/include/bits/poll2.h:39 #2 QtWaylandClient::EventThread::run (this=0x557ca4bf58e0) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:208 #3 0x00007f6bd79022ea in QThreadPrivate::start (arg=0x557ca4bf58e0) at thread/qthread_unix.cpp:330 #4 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #5 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7f6bd1ad26c0 (LWP 14118) "WaylandEventThr"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca4bf56d0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca4bf56d0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca4bf5680, cond=0x557ca4bf56a8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca4bf56a8, mutex=0x557ca4bf5680) at pthread_cond_wait.c:618 #5 0x00007f6bd7909784 in QWaitConditionPrivate::wait (deadline=..., this=0x557ca4bf5680) at thread/qwaitcondition_unix.cpp:146 #6 QWaitCondition::wait (this=this@entry=0x557ca4bd5c70, mutex=mutex@entry=0x557ca4bd5c68, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007f6bd59bacb4 in QtWaylandClient::EventThread::waitForReading (this=0x557ca4bd5c30) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:242 #8 QtWaylandClient::EventThread::run (this=0x557ca4bd5c30) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:206 #9 0x00007f6bd79022ea in QThreadPrivate::start (arg=0x557ca4bd5c30) at thread/qthread_unix.cpp:330 #10 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #11 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7f6bd25c56c0 (LWP 14117) "QDBusConnection"): #1 0x00007f6bd60bdbef in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f6bcc0053e0, timeout=<optimized out>, context=0x7f6bcc001cf0) at ../glib/glib/gmain.c:4553 #2 g_main_context_iterate.constprop.0 (context=0x7f6bcc001cf0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4243 #3 0x00007f6bd6065132 in g_main_context_iteration (context=0x7f6bcc001cf0, may_block=1) at ../glib/glib/gmain.c:4313 #4 0x00007f6bd7af5c6f in QEventDispatcherGlib::processEvents (this=0x7f6bcc000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007f6bd7aa373c in QEventLoop::exec (this=0x7f6bd25c4a90, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #6 0x00007f6bd790521f in QThread::exec (this=this@entry=0x7f6bd6ffb560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007f6bd6f9fcba in QDBusConnectionManager::run (this=0x7f6bd6ffb560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qt5-base/qtbase/src/dbus/qdbusconnection.cpp:179 #8 0x00007f6bd79022ea in QThreadPrivate::start (arg=0x7f6bd6ffb560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330 #9 0x00007f6bd739c8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #10 0x00007f6bd741ea60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7f6bd2b2aac0 (LWP 14116) "filelight"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x557ca517d260, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f6bd739951f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x557ca517d260, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f6bd739bcd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557ca517d210, cond=0x557ca517d238) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x557ca517d238, mutex=0x557ca517d210) at pthread_cond_wait.c:618 #5 0x00007f6bd7909784 in QWaitConditionPrivate::wait (deadline=..., this=0x557ca517d210) at thread/qwaitcondition_unix.cpp:146 #6 QWaitCondition::wait (this=<optimized out>, mutex=0x557ca51e29f8, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007f6bd8a613d0 in QSGThreadedRenderLoop::polishAndSync (this=0x557ca4dc74d0, w=0x557ca4ff3350, inExpose=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1603 #8 0x00007f6bd8ab1519 in QQuickWindow::event (this=0x557ca4e74020, e=0x7ffe60dae900) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1863 #9 0x00007f6bd8f16b1c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x557ca4e74020, e=0x7ffe60dae900) at kernel/qapplication.cpp:3637 #10 0x00007f6bd7aaaf98 in QCoreApplication::notifyInternal2 (receiver=0x557ca4e74020, event=0x7ffe60dae900) at kernel/qcoreapplication.cpp:1064 #11 0x00007f6bd7f264d0 in QPlatformWindow::deliverUpdateRequest (this=<optimized out>) at kernel/qplatformwindow.cpp:796 #12 0x00007f6bd7acebe0 in QObject::event (this=0x557ca4e8e2b0, e=0x7f6bc4006c10) at kernel/qobject.cpp:1347 #13 0x00007f6bd8f16b1c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x557ca4e8e2b0, e=0x7f6bc4006c10) at kernel/qapplication.cpp:3637 #14 0x00007f6bd7aaaf98 in QCoreApplication::notifyInternal2 (receiver=0x557ca4e8e2b0, event=0x7f6bc4006c10) at kernel/qcoreapplication.cpp:1064 #15 0x00007f6bd7aabaa3 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x557ca4bd1ef0) at kernel/qcoreapplication.cpp:1821 #16 0x00007f6bd7af1e68 in postEventSourceDispatch (s=0x557ca4bf1e20) at kernel/qeventdispatcher_glib.cpp:277 #17 0x00007f6bd606687b in g_main_dispatch (context=0x7f6bcc005010) at ../glib/glib/gmain.c:3454 #18 g_main_context_dispatch (context=0x7f6bcc005010) at ../glib/glib/gmain.c:4172 #19 0x00007f6bd60bdc89 in g_main_context_iterate.constprop.0 (context=0x7f6bcc005010, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4248 #20 0x00007f6bd6065132 in g_main_context_iteration (context=0x7f6bcc005010, may_block=1) at ../glib/glib/gmain.c:4313 #21 0x00007f6bd7af5c4c in QEventDispatcherGlib::processEvents (this=0x557ca4ba6420, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #22 0x00007f6bd7aa373c in QEventLoop::exec (this=0x7ffe60daed70, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #23 0x00007f6bd7aae269 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #24 0x00007f6bd7f2d102 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870 #25 0x00007f6bd8f14f2a in QApplication::exec () at kernel/qapplication.cpp:2829 #26 0x0000557ca49c1519 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/filelight/filelight-22.12.0/src/main.cpp:88 [Inferior 1 (process 14116) detached] Reported using DrKonqi
The intel laptop: Qt Version: 5.15.7 Frameworks Version: 5.101.0 Operating System: Linux 5.15.82-1-lts x86_64 Windowing System: X11 Distribution: "Arch Linux" Backtrace: Application: Filelight (filelight), signal: Segmentation fault Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0} [KCrash Handler] #6 0x000055bba62df215 in ?? () #7 0x00007f715865f15d in QSGDefaultPainterNode::paint (this=this@entry=0x7f71080ab0e0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/util/qsgdefaultpainternode.cpp:188 #8 0x00007f7158660b10 in QSGDefaultPainterNode::update (this=0x7f71080ab0e0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/util/qsgdefaultpainternode.cpp:216 #9 0x00007f71586ce71d in QQuickPaintedItem::updatePaintNode (this=<optimized out>, oldNode=<optimized out>, data=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickpainteditem.cpp:610 #10 0x00007f71586c96a8 in QQuickWindowPrivate::updateDirtyNode (this=0x55bba6f29ab0, item=0x55bba745ff10) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3877 #11 0x00007f71586c9eb5 in QQuickWindowPrivate::updateDirtyNodes (this=0x55bba6f29ab0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3622 #12 0x00007f71586b72a9 in QQuickWindowPrivate::syncSceneGraph (this=0x55bba6f29ab0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:524 #13 0x00007f7158666718 in QSGRenderThread::sync (inGrab=<optimized out>, inExpose=false, this=0x55bba7155ee0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:646 #14 QSGRenderThread::syncAndRender (this=0x55bba7155ee0, grabImage=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:777 #15 0x00007f715866aea4 in QSGRenderThread::run (this=0x55bba7155ee0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1042 #16 0x00007f71575112ea in QThreadPrivate::start (arg=0x55bba7155ee0) at thread/qthread_unix.cpp:330 #17 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #18 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 8 (Thread 0x7f71252c26c0 (LWP 2109) "fileligh:gdrv0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba733d410, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba733d410, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba733d3c0, cond=0x55bba733d3e8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba733d3e8, mutex=0x55bba733d3c0) at pthread_cond_wait.c:618 #5 0x00007f714a72499e in ?? () from /usr/lib/dri/iris_dri.so #6 0x00007f714a6d7f8c in ?? () from /usr/lib/dri/iris_dri.so #7 0x00007f714a7248cc in ?? () from /usr/lib/dri/iris_dri.so #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 7 (Thread 0x7f713cf446c0 (LWP 2103) "QQmlThread"): #1 0x00007f7155c72ddc in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #2 0x00007f7155cc90f8 in ?? () from /usr/lib/libglib-2.0.so.0 #3 0x00007f7155c71132 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #4 0x00007f7157704c6f in QEventDispatcherGlib::processEvents (this=0x7f712c000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007f71576b273c in QEventLoop::exec (this=0x7f713cf43aa0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #6 0x00007f715751421f in QThread::exec (this=this@entry=0x55bba6f42ae0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007f7158329370 in QQmlThreadPrivate::run (this=0x55bba6f42ae0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:155 #8 0x00007f71575112ea in QThreadPrivate::start (arg=0x55bba6f42ae0) at thread/qthread_unix.cpp:330 #9 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #10 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 6 (Thread 0x7f7148e196c0 (LWP 2101) "filelight:sh2"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba6ebe9b0, cond=0x55bba6ebe9d8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba6ebe9d8, mutex=0x55bba6ebe9b0) at pthread_cond_wait.c:618 #5 0x00007f714a72499e in ?? () from /usr/lib/dri/iris_dri.so #6 0x00007f714a6d7f8c in ?? () from /usr/lib/dri/iris_dri.so #7 0x00007f714a7248cc in ?? () from /usr/lib/dri/iris_dri.so #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 5 (Thread 0x7f714961a6c0 (LWP 2100) "filelight:sh1"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba6ebe9b0, cond=0x55bba6ebe9d8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba6ebe9d8, mutex=0x55bba6ebe9b0) at pthread_cond_wait.c:618 #5 0x00007f714a72499e in ?? () from /usr/lib/dri/iris_dri.so #6 0x00007f714a6d7f8c in ?? () from /usr/lib/dri/iris_dri.so #7 0x00007f714a7248cc in ?? () from /usr/lib/dri/iris_dri.so #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7f7149e1b6c0 (LWP 2099) "filelight:sh0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba6ebea00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba6ebe9b0, cond=0x55bba6ebe9d8) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba6ebe9d8, mutex=0x55bba6ebe9b0) at pthread_cond_wait.c:618 #5 0x00007f714a72499e in ?? () from /usr/lib/dri/iris_dri.so #6 0x00007f714a6d7f8c in ?? () from /usr/lib/dri/iris_dri.so #7 0x00007f714a7248cc in ?? () from /usr/lib/dri/iris_dri.so #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7f714a61c6c0 (LWP 2098) "filelig:disk$0"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba6ebb7c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba6ebb7c8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba6ebb778, cond=0x55bba6ebb7a0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba6ebb7a0, mutex=0x55bba6ebb778) at pthread_cond_wait.c:618 #5 0x00007f714a72499e in ?? () from /usr/lib/dri/iris_dri.so #6 0x00007f714a6d7f8c in ?? () from /usr/lib/dri/iris_dri.so #7 0x00007f714a7248cc in ?? () from /usr/lib/dri/iris_dri.so #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7f7151fbc6c0 (LWP 2096) "QDBusConnection"): #1 0x00007f7155cc91ff in ?? () from /usr/lib/libglib-2.0.so.0 #2 0x00007f7155c71132 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #3 0x00007f7157704c6f in QEventDispatcherGlib::processEvents (this=0x7f714c000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007f71576b273c in QEventLoop::exec (this=0x7f7151fbba90, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #5 0x00007f715751421f in QThread::exec (this=this@entry=0x7f7156c0a560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f7156baecba in QDBusConnectionManager::run (this=0x7f7156c0a560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qt5-base/qtbase/src/dbus/qdbusconnection.cpp:179 #7 0x00007f71575112ea in QThreadPrivate::start (arg=0x7f7156c0a560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330 #8 0x00007f7156fab8fd in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007f715702da60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7f715273fac0 (LWP 2095) "filelight"): #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55bba7146fa4, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007f7156fa851f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55bba7146fa4, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007f7156faacd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55bba7146f50, cond=0x55bba7146f78) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x55bba7146f78, mutex=0x55bba7146f50) at pthread_cond_wait.c:618 #5 0x00007f7157518784 in QWaitConditionPrivate::wait (deadline=..., this=0x55bba7146f50) at thread/qwaitcondition_unix.cpp:146 #6 QWaitCondition::wait (this=<optimized out>, mutex=0x55bba7155f38, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007f71586703d0 in QSGThreadedRenderLoop::polishAndSync (this=0x55bba70571e0, w=0x55bba7135db0, inExpose=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1603 #8 0x00007f71586c0519 in QQuickWindow::event (this=0x55bba6f89300, e=0x7ffc1dc6ad10) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1863 #9 0x00007f7158b25b1c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55bba6f89300, e=0x7ffc1dc6ad10) at kernel/qapplication.cpp:3637 #10 0x00007f71576b9f98 in QCoreApplication::notifyInternal2 (receiver=0x55bba6f89300, event=0x7ffc1dc6ad10) at kernel/qcoreapplication.cpp:1064 #11 0x00007f7157b355a8 in QPlatformWindow::deliverUpdateRequest (this=<optimized out>) at kernel/qplatformwindow.cpp:796 #12 QPlatformWindow::windowEvent (this=<optimized out>, event=<optimized out>) at kernel/qplatformwindow.cpp:476 #13 0x00007f7158b2a001 in QApplication::notify (this=0x7ffc1dc6b380, receiver=0x55bba6f89300, e=0x7ffc1dc6af90) at kernel/qapplication.cpp:2879 #14 0x00007f71576b9f98 in QCoreApplication::notifyInternal2 (receiver=0x55bba6f89300, event=0x7ffc1dc6af90) at kernel/qcoreapplication.cpp:1064 #15 0x00007f7157704493 in QTimerInfoList::activateTimers (this=0x55bba6db7480) at kernel/qtimerinfo_unix.cpp:643 #16 0x00007f7157704a8a in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183 #17 0x00007f7155c7287b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #18 0x00007f7155cc9299 in ?? () from /usr/lib/libglib-2.0.so.0 #19 0x00007f7155c71132 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #20 0x00007f7157704c4c in QEventDispatcherGlib::processEvents (this=0x55bba6db6d80, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #21 0x00007f71576b273c in QEventLoop::exec (this=0x7ffc1dc6b240, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #22 0x00007f71576bd269 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #23 0x000055bba62d5519 in ?? () #24 0x00007f7156f48290 in __libc_start_call_main (main=main@entry=0x55bba62d32d0, argc=argc@entry=1, argv=argv@entry=0x7ffc1dc6b698) at ../sysdeps/nptl/libc_start_call_main.h:58 #25 0x00007f7156f4834a in __libc_start_main_impl (main=0x55bba62d32d0, argc=1, argv=0x7ffc1dc6b698, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc1dc6b688) at ../csu/libc-start.c:381 #26 0x000055bba62d5e15 in ?? () [Inferior 1 (process 2095) detached]
A possibly relevant merge request was started @ https://invent.kde.org/utilities/filelight/-/merge_requests/68
Git commit a206fed2488686d4222722ae26e4d2562abdc1fd by Harald Sitter. Committed on 01/01/2023 at 15:55. Pushed by sitter into branch 'master'. change the semantics of duplication previously this would simply clone the shared pointer, but that leaves references into the old tree behind which can then cause state confusion (e.g. the asserts to do with m_parent consistency can fail). instead opt for a deep-clone behavior. it's more expensive but also much much safer. code is very exhaustive because we don't want to stack exhaust on duplication so a recursive call won't do. instead we iterate down the tree and then append all folders in reverse order. add a test to ensure duplication works correctly M +18 -0 autotests/core/testFileTree.cpp M +1 -0 autotests/core/testFileTree.h M +44 -0 src/fileTree.cpp M +4 -5 src/fileTree.h https://invent.kde.org/utilities/filelight/commit/a206fed2488686d4222722ae26e4d2562abdc1fd
Git commit dc1bfb1943ff14f0f5daa072b3e198dbcaa42e92 by Harald Sitter. Committed on 01/01/2023 at 16:10. Pushed by sitter into branch 'release/22.12'. change the semantics of duplication previously this would simply clone the shared pointer, but that leaves references into the old tree behind which can then cause state confusion (e.g. the asserts to do with m_parent consistency can fail). instead opt for a deep-clone behavior. it's more expensive but also much much safer. code is very exhaustive because we don't want to stack exhaust on duplication so a recursive call won't do. instead we iterate down the tree and then append all folders in reverse order. add a test to ensure duplication works correctly M +18 -0 autotests/core/testFileTree.cpp M +1 -0 autotests/core/testFileTree.h M +42 -0 src/fileTree.cpp M +4 -4 src/fileTree.h https://invent.kde.org/utilities/filelight/commit/dc1bfb1943ff14f0f5daa072b3e198dbcaa42e92