https://bugs.kde.org/show_bug.cgi?id=504824
Bug ID: 504824 Summary: Sometimes, accessing some directories owned by root with content accessible to the user causes Dolphin to crash. Classification: Applications Product: dolphin Version First 25.04.1 Reported In: Platform: Fedora RPMs URL: https://retrace.fedoraproject.org/faf/reports/bthash/9 72e2ed5d244d427831b0575fee10e18e147ee9a OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: dolphin-bugs-n...@kde.org Reporter: 4wy78...@rokejulianlockhart.addy.io CC: kfm-de...@kde.org Target Milestone: --- STEPS TO REPRODUCE When I invoked `/var/spool/abrt/ccpp-2025-05-26-15:19:20.56527-218721` in Dolphin via GNOME Abrt's "Open problem data directory" crash-specific context menu option, it didn't appear for some time. OBSERVED RESULT When I eventually attached `strace -Ttr`, I saw some seriously slow calls: > ~~~CPP > strace: Process 280469 attached > 17:19:20 (+ 0.000000) futex(0x7f4cc400aba8, > FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, > FUTEX_BITSET_MATCH_ANY) = 0 <11.201975> > 17:19:31 (+ 11.202025) futex(0x7f4cc400ab60, FUTEX_WAKE_PRIVATE, 1) = 0 > <0.000009> > 17:19:31 (+ 0.000052) write(4, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000011> > 17:19:31 (+ 0.000067) futex(0x7f4cc400aba8, > FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, > FUTEX_BITSET_MATCH_ANY) = 0 <24.999844> > 17:19:56 (+ 24.999890) futex(0x7f4cc400ab60, FUTEX_WAKE_PRIVATE, 1) = 0 > <0.000016> > ~~~ Eventually, it crashed: > ~~~CPP > 17:20:03 (+ 0.000021) write(3, "\n", 1) = 1 <0.000008> > 17:20:03 (+ 0.000024) --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, > si_addr=NULL} --- > 17:20:03 (+ 0.291732) +++ killed by SIGSEGV (core dumped) +++ > ~~~ Consequently, I debugged the KCrash. This generated: > ~~~CPP > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x00007f4ce13a80f5 in KCrash::defaultCrashHandler (sig=11) at > /usr/src/debug/kf6-kcrash-6.14.0-1.fc42.x86_64/src/kcrash.cpp:538 > 538 if (auto disp = > qGuiApp->nativeInterface<QNativeInterface::QX11Application>()->display()) { > --Type <RET> for more, q to quit, c to continue without paging--c > [Current thread is 1 (Thread 0x7f4cd7e17d80 (LWP 280469))] > (gdb) bt full > #0 0x00007f4ce13a80f5 in KCrash::defaultCrashHandler (sig=11) at > /usr/src/debug/kf6-kcrash-6.14.0-1.fc42.x86_64/src/kcrash.cpp:538 > disp = <optimized out> > display = 0x0 > data = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = > 0x7f4ce13b0808 <vtable for KCrash::Metadata+16>}, argv = {_M_elems = {0x0, > 0x7f4ce13ae6ed "--qtversion", 0x560e65a779d0 "6.9.0", 0x7f4ce13ae700 > "--kdeframeworksversion", > 0x7f4ce13ae6f9 "6.14.0", 0x7f4ce13ae738 "--platform", > 0x560e65d1efe0 "xcb", 0x0 <repeats 31 times>}}, argc = 7, m_writer = > 0x7ffe3b977ab0} > platformName = {d = {d = 0x560e65d1efd0, ptr = 0x560e65d1efe0 "xcb", > size = 3}, static _empty = 0 '\000'} > about = <optimized out> > argv = <optimized out> > ini = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = > 0x7f4ce13b0838 <vtable for KCrash::MetadataINIWriter+16>}, writable = true, > fd = 3} > sigtxt = "\000\000\340}\227;\376\177\000" > pidtxt = > "\240v\225f\016V\000\000\220\023\000xL\177\000\000\000\000\000" > argc = <optimized out> > crashRecursionCounter = 2 > #1 <signal handler called> > No locals. > #2 unlink_chunk (p=0x560e669c0e00, av=<optimized out>) at malloc.c:1625 > fd = 0x560e66996f00 > bk = 0x560e669b4f30 > #3 0x00007f4cde88bf33 in malloc_consolidate (av=av@entry=0x7f4cde9f6ac0 > <main_arena>) at malloc.c:4933 > fb = 0x7f4cde9f6ad8 <main_arena+24> > maxfb = 0x7f4cde9f6b18 <main_arena+88> > p = 0x560e669c0dd0 > nextp = <optimized out> > unsorted_bin = 0x7f4cde9f6b20 <main_arena+96> > first_unsorted = <optimized out> > nextchunk = <optimized out> > size = 1376 > nextsize = <optimized out> > prevsize = <optimized out> > nextinuse = <optimized out> > #4 0x00007f4cde88d2b0 in _int_free_maybe_consolidate > (av=av@entry=0x7f4cde9f6ac0 <main_arena>, size=<optimized out>) at > malloc.c:4836 > --Type <RET> for more, q to quit, c to continue without paging--c > __PRETTY_FUNCTION__ = "_int_free_maybe_consolidate" > #5 0x00007f4cde88d5da in _int_free_maybe_consolidate (av=0x7f4cde9f6ac0 > <main_arena>, size=<optimized out>) at malloc.c:4744 > __PRETTY_FUNCTION__ = "_int_free_maybe_consolidate" > heap = <optimized out> > #6 0x00007f4cde88d764 in _int_free_chunk (av=0x7f4cde9f6ac0 <main_arena>, > p=<optimized out>, size=<optimized out>, have_lock=<optimized out>, > have_lock@entry=0) at malloc.c:4667 > fb = <optimized out> > #7 0x00007f4cde890592 in _int_free (av=<optimized out>, p=<optimized out>, > have_lock=0) at malloc.c:4699 > size = <optimized out> > #8 __GI___libc_free (mem=<optimized out>) at malloc.c:3476 > ar_ptr = <optimized out> > p = <optimized out> > err = 11 > #9 0x00007f4ce0f8735b in QHashPrivate::Span<QHashPrivate::Node<QString, > KCatalog*> >::freeData (this=0x560e66acd138) at > /usr/include/qt6/QtCore/qhash.h:276 > No locals. > #10 QHashPrivate::Span<QHashPrivate::Node<QString, KCatalog*> >::~Span > (this=<optimized out>, this=<optimized out>) at > /usr/include/qt6/QtCore/qhash.h:265 > No locals. > #11 QHashPrivate::Data<QHashPrivate::Node<QString, KCatalog*> >::~Data > (this=<optimized out>, this=<optimized out>) at > /usr/include/qt6/QtCore/qhash.h:778 > No locals. > #12 QHash<QString, KCatalog*>::~QHash (this=<optimized out>, this=<optimized > out>) at /usr/include/qt6/QtCore/qhash.h:868 > No locals. > #13 QHash<QString, KCatalog*>::~QHash (this=<optimized out>, this=<optimized > out>) at /usr/include/qt6/QtCore/qhash.h:862 > No locals. > #14 QHashPrivate::Node<QByteArray, QHash<QString, KCatalog*> >::~Node > (this=<optimized out>, this=<optimized out>) at > /usr/include/qt6/QtCore/qhash.h:72 > No locals. > #15 QHashPrivate::Span<QHashPrivate::Node<QByteArray, QHash<QString, > KCatalog*> > >::freeData (this=this@entry=0x560e65a74048) at > /usr/include/qt6/QtCore/qhash.h:273 > o = <optimized out> > __for_range = @0x560e65a74048: '\377' <repeats 25 times>, "\b", > '\377' <repeats 22 times>, "\000", '\377' <repeats 12 times>, > "\006\377\377\377\377\377\377\377\001", '\377' <repeats 18 times>, > "\n\377\377\377\a", '\377' <repeats 15 times>, > "\004\t\002\377\377\377\377\377\377\377\377\377\377\005\377\377\377\377\377\003" > __for_begin = 0x560e65a740a0 "\n\377\377\377\a", '\377' <repeats 15 > times>, > "\004\t\002\377\377\377\377\377\377\377\377\377\377\005\377\377\377\377\377\003 > ĥe\016V" > __for_end = 0x560e65a740c8 " ĥe\016V" > #16 0x00007f4ce0f8dfc4 in QHashPrivate::Span<QHashPrivate::Node<QByteArray, > QHash<QString, KCatalog*> > >::~Span (this=<optimized out>, this=<optimized > out>) at /usr/include/qt6/QtCore/qhash.h:263 > No locals. > #17 QHashPrivate::Data<QHashPrivate::Node<QByteArray, QHash<QString, > KCatalog*> > >::~Data (this=<optimized out>, this=<optimized out>) at > /usr/include/qt6/QtCore/qhash.h:778 > No locals. > #18 QHash<QByteArray, QHash<QString, KCatalog*> >::~QHash (this=<optimized > out>, this=<optimized out>) at /usr/include/qt6/QtCore/qhash.h:868 > No locals. > #19 QHash<QByteArray, QHash<QString, KCatalog*> >::~QHash (this=<optimized > out>, this=<optimized out>) at /usr/include/qt6/QtCore/qhash.h:862 > No locals. > #20 KLocalizedStringPrivateStatics::~KLocalizedStringPrivateStatics > (this=<optimized out>, this=<optimized out>) at > /usr/src/debug/kf6-ki18n-6.14.0-1.fc42.x86_64/src/i18n/klocalizedstring.cpp:302 > languageCatalogs = <optimized out> > __for_range = <optimized out> > __for_begin = <optimized out> > __for_end = <optimized out> > #21 QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_staticsKLSP>::~Holder > (this=<optimized out>, this=<optimized out>) at > /usr/include/qt6/QtCore/qglobalstatic.h:53 > No locals. > #22 0x00007f4cde82a2d1 in __run_exit_handlers (status=0, listp=0x7f4cde9f6680 > <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, > run_dtors=run_dtors@entry=true) at exit.c:118 > atfct = <optimized out> > onfct = <optimized out> > cxafct = <optimized out> > arg = <optimized out> > f = <optimized out> > new_exitfn_called = 3252 > cur = 0x560e65f0f240 > restart = <optimized out> > #23 0x00007f4cde82a3ae in __GI_exit (status=<optimized out>) at exit.c:148 > No locals. > #24 0x00007f4cde8115fc in __libc_start_call_main > (main=main@entry=0x560e3f3cb5c0 <main(int, char**)>, argc=argc@entry=2, > argv=argv@entry=0x7ffe3b978c88) at ../sysdeps/nptl/libc_start_call_main.h:74 > result = <optimized out> > unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 12306429621036405, > 140729898208392, 2, 139968181219328, 94619191652792, 12306429400835445, > 94138591556265333}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, > 0x7ffe3b978c88}, data = { > prev = 0x0, cleanup = 0x0, canceltype = 0}}} > not_first_call = <optimized out> > #25 0x00007f4cde8116a8 in __libc_start_main_impl (main=0x560e3f3cb5c0 > <main(int, char**)>, argc=2, argv=0x7ffe3b978c88, init=<optimized out>, > fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe3b978c78) at > ../csu/libc-start.c:360 > No locals. > #26 0x0000560e3f3ce9a5 in _start () > No symbol table info available. > ~~~ This crash is available for P6M at https://retrace.fedoraproject.org/faf/reports/bthash/972e2ed5d244d427831b0575fee10e18e147ee9a. SOFTWARE/OS VERSIONS `dolphin-25.04.1-1` on: > ~~~ > Operating System: Fedora Linux 42 (KDE Plasma Desktop Edition) > CPE OS Name: cpe:/o:fedoraproject:fedora:42 > KDE Plasma Version: 6.3.5 > KDE Frameworks Version: 6.14.0 > Qt Version: 6.9.0 > Kernel Version: 6.14.6-300.fc42.x86_64 (64-bit) > Graphics Platform: Wayland > ~~~ ADDITIONAL INFORMATION Undermentioned is the KCrash, although I've removed the module declarations for conciseness: > ~~~CPP > PID: 280469 (dolphin) > UID: 1000 (RokeJulianLockhart) > GID: 1000 (RokeJulianLockhart) > Signal: 11 (SEGV) > Timestamp: Mon 2025-05-26 17:20:03 BST (1min 25s ago) > Command Line: /usr/bin/dolphin > /var/spool/abrt/ccpp-2025-05-26-15:19:20.56527-218721 > Executable: /usr/bin/dolphin > Control Group: > /user.slice/user-1000.slice/user@1000.service/app.slice/app-org.kde.konsole-280469.scope > Unit: user@1000.service > User Unit: app-org.kde.konsole-280469.scope > Slice: user-1000.slice > Owner UID: 1000 (RokeJulianLockhart) > Boot ID: 8801149266ad47bf839c195c08fa3228 > Machine ID: b4f0bef5ffd640fba0ab31fdaa2820b8 > Hostname: Beedell.RokeJulianLockhart.desktop.SSV2AY > Storage: > /var/lib/systemd/coredump/core.dolphin.1000.8801149266ad47bf839c195c08fa3228.280469.1748276403000000.zst > (present) > Size on Disk: 5.8M > Package: dolphin/25.04.1-1.fc42 > build-id: 65449035f4ef787371ed1dd755dc2e837fd64f89 > Message: Process 280469 (dolphin) of user 1000 dumped core. > > Stack trace of thread 280469: > #0 0x00007f4ce13a80f5 _ZN6KCrash19defaultCrashHandlerEi > (libKF6Crash.so.6 + 0x50f5) > #1 0x00007f4cde827c30 __restore_rt (libc.so.6 + 0x19c30) > #2 0x00007f4cde88bd37 unlink_chunk.isra.0 (libc.so.6 + > 0x7dd37) > #3 0x00007f4cde88bf33 malloc_consolidate (libc.so.6 + > 0x7df33) > #4 0x00007f4cde88d2b0 _int_free_maybe_consolidate.part.0 > (libc.so.6 + 0x7f2b0) > #5 0x00007f4cde88d764 _int_free_chunk (libc.so.6 + 0x7f764) > #6 0x00007f4cde890592 free (libc.so.6 + 0x82592) > #7 0x00007f4ce0f8735b > _ZN12QHashPrivate4SpanINS_4NodeI10QByteArray5QHashI7QStringP8KCatalogEEEE8freeDataEv > (libKF6I18n.so.6 + 0x1535b) > #8 0x00007f4ce0f8dfc4 > _ZN14QtGlobalStatic6HolderIN12_GLOBAL__N_117Q_QGS_staticsKLSPEED2Ev.lto_priv.0 > (libKF6I18n.so.6 + 0x1bfc4) > #9 0x00007f4cde82a2d1 __run_exit_handlers (libc.so.6 + > 0x1c2d1) > #10 0x00007f4cde82a3ae exit (libc.so.6 + 0x1c3ae) > #11 0x00007f4cde8115fc __libc_start_call_main (libc.so.6 + > 0x35fc) > #12 0x00007f4cde8116a8 __libc_start_main@@GLIBC_2.34 > (libc.so.6 + 0x36a8) > #13 0x0000560e3f3ce9a5 _start (/usr/bin/dolphin + 0x109a5) > > Stack trace of thread 280471: > #0 0x00007f4cde8876c2 __syscall_cancel_arch (libc.so.6 + > 0x796c2) > #1 0x00007f4cde87b9da __internal_syscall_cancel (libc.so.6 + > 0x6d9da) > #2 0x00007f4cde87ba24 __syscall_cancel (libc.so.6 + 0x6da24) > #3 0x00007f4cde8f5176 ppoll (libc.so.6 + 0xe7176) > #4 0x00007f4cdc397890 g_main_context_iterate_unlocked.isra.0 > (libglib-2.0.so.0 + 0x49890) > #5 0x00007f4cdc397953 g_main_context_iteration > (libglib-2.0.so.0 + 0x49953) > #6 0x00007f4cdf1ff56d > _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE > (libQt6Core.so.6 + 0x3ff56d) > #7 0x00007f4cdef03783 > _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + > 0x103783) > #8 0x00007f4cdf0217fd _ZN7QThread4execEv (libQt6Core.so.6 + > 0x2217fd) > #9 0x00007f4ce0874901 _ZN22QDBusConnectionManager3runEv > (libQt6DBus.so.6 + 0x20901) > #10 0x00007f4cdf0bdde4 _ZN14QThreadPrivate5startEPv > (libQt6Core.so.6 + 0x2bdde4) > #11 0x00007f4cde87f1d4 start_thread (libc.so.6 + 0x711d4) > #12 0x00007f4cde901cec __clone3 (libc.so.6 + 0xf3cec) > > Stack trace of thread 280896: > #0 0x00007f4cde8876c2 __syscall_cancel_arch (libc.so.6 + > 0x796c2) > #1 0x00007f4cde87b9da __internal_syscall_cancel (libc.so.6 + > 0x6d9da) > #2 0x00007f4cde87ba24 __syscall_cancel (libc.so.6 + 0x6da24) > #3 0x00007f4cde8f5176 ppoll (libc.so.6 + 0xe7176) > #4 0x00007f4cdc397890 g_main_context_iterate_unlocked.isra.0 > (libglib-2.0.so.0 + 0x49890) > #5 0x00007f4cdc397953 g_main_context_iteration > (libglib-2.0.so.0 + 0x49953) > #6 0x00007f4cdf1ff56d > _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE > (libQt6Core.so.6 + 0x3ff56d) > #7 0x00007f4cdef03783 > _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + > 0x103783) > #8 0x00007f4cdf0217fd _ZN7QThread4execEv (libQt6Core.so.6 + > 0x2217fd) > #9 0x00007f4cdf0bdde4 _ZN14QThreadPrivate5startEPv > (libQt6Core.so.6 + 0x2bdde4) > #10 0x00007f4cde87f1d4 start_thread (libc.so.6 + 0x711d4) > #11 0x00007f4cde901cec __clone3 (libc.so.6 + 0xf3cec) > ELF object binary architecture: AMD x86-64 > ~~~ -- You are receiving this mail because: You are watching all bug changes.