Summary: | Crash when hovering over different items after a rescan | ||
---|---|---|---|
Product: | [Applications] filelight | Reporter: | Foxite <the> |
Component: | general | Assignee: | Unassigned bugs mailing-list <unassigned-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | martin.sandsmark |
Priority: | NOR | Keywords: | drkonqi |
Version: | 22.12.0 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/utilities/filelight/commit/dc1bfb1943ff14f0f5daa072b3e198dbcaa42e92 | Version Fixed In: | |
Sentry Crash Report: |
Description
Foxite
2022-12-24 18:50:56 UTC
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 |