Bug 467101

Summary: Corrupted KCrash files appear in home directory
Product: [Frameworks and Libraries] frameworks-kcrash Reporter: ha51wl8j
Component: generalAssignee: David Faure <faure>
Status: REOPENED ---    
Severity: crash CC: gerrit.huebbers, kdelibs-bugs, nate, tagwerk19
Priority: NOR    
Version: 5.103.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description ha51wl8j 2023-03-09 09:53:41 UTC
SUMMARY
Some time after updating to 5.27, a lot of files with corrupted filenames appeared. Some of them only have corrupted symbols in them but most look like this:

[KCrash]
exe=*corrupted characters*
appname=*corrupted characters*
apppath=*corrupted characters*
signal=11
pid=4365


When going into the DrKonqi intensive care application to look at crashed processes, there are a lot of baloo_file_extractor entries. The time where it crashed corresponds to the time where the corrupted file was created. 


STEPS TO REPRODUCE
I'm not really sure. It happened after updating to 5.27, just like in this reddit post: https://lr.mint.lgbt/r/kde/comments/116ss8x/files_with_strange_names_generated_in_home_after/?sort=new 
The issue of the poster is exactly the same as mine. 

OBSERVED RESULT
A lot of files with corrupted names in /home/

EXPECTED RESULT
No corrupted files in /home/ (baloo not crashing would also be great)

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 6.2.2-arch1-1 
KDE Plasma Version: 5.27.2
KDE Frameworks Version:  5.103.0
Qt Version: 5.15.8
KCrash version: kcrash-5.103.0-1
Baloo version: baloo-5.103.0-1

ADDITIONAL INFORMATION
In the comment of the previously mentioned post someone mentioned that not doing an offline update might be the cause but at least for me, this issue is still present even after multiple restarts and daily use.
There are the same kcrash files with corrupted entries in "~/.cache/kcrash-metadata/", however in this case they have non corrupted filenames (like 10020.ini). 
I'm not sure what exactly is causing this. In case it helps here is a backtrace of the latest time /usr/lib/baloo_file_extractor crashed:
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:76
#1  0x00007f1473a72ba1 in __printf_buffer (buf=buf@entry=0x7ffd2da5dd40, format=format@entry=0x7f1474cec176 "%s ", ap=ap@entry=0x7ffd2da5de40, mode_flags=mode_flags@entry=2)
    at /usr/src/debug/glibc/glibc/stdio-common/vfprintf-process-arg.c:423
#2  0x00007f1473a7311a in __vfprintf_internal (s=0x7f1473bf24c0 <_IO_2_1_stderr_>, format=0x7f1474cec176 "%s ", ap=ap@entry=0x7ffd2da5de40, mode_flags=2) at vfprintf-internal.c:1474
#3  0x00007f1473b2f1d3 in ___fprintf_chk (fp=<optimized out>, flag=<optimized out>, format=<optimized out>) at fprintf_chk.c:33
#4  0x00007f1474ceb31a in fprintf (__fmt=0x7f1474cec176 "%s ", __stream=<optimized out>) at /usr/include/bits/stdio2.h:79
#5  KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-5.103.0/src/kcrash.cpp:575
#6  <signal handler called>
#7  0x00007f1474e9e325 in wl_map_insert_at (map=map@entry=0x564715cfd8f0, flags=flags@entry=1, i=23, data=<optimized out>) at ../wayland-1.21.0/src/wayland-util.c:276
#8  0x00007f1474e9e483 in proxy_destroy (proxy=proxy@entry=0x564715d59110) at ../wayland-1.21.0/src/wayland-client.c:510
#9  0x00007f1474ea0020 in wl_proxy_destroy_caller_locks (proxy=0x564715d59110) at ../wayland-1.21.0/src/wayland-client.c:530
#10 wl_proxy_marshal_array_flags (proxy=proxy@entry=0x564715d59110, opcode=opcode@entry=0, interface=interface@entry=0x0, version=version@entry=1, flags=flags@entry=1, 
    args=args@entry=0x7ffd2da5ec20) at ../wayland-1.21.0/src/wayland-client.c:868
#11 0x00007f1474ea0afa in wl_proxy_marshal_flags (proxy=0x564715d59110, opcode=0, interface=0x0, version=1, flags=1) at ../wayland-1.21.0/src/wayland-client.c:791
#12 0x00007f146e50d603 in org_kde_kwin_idle_timeout_release (org_kde_kwin_idle_timeout=0x564715d59110)
    at /usr/src/debug/kidletime/build/src/plugins/wayland/wayland-idle-client-protocol.h:208
#13 QtWayland::ext_idle_notification_v1::destroy (this=0x564715d46f10) at /usr/src/debug/kidletime/build/src/plugins/wayland/qwayland-ext-idle-notify-v1.cpp:134
#14 IdleTimeoutExt::~IdleTimeoutExt (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kidletime/kidletime-5.103.0/src/plugins/wayland/poller.cpp:77
#15 IdleTimeoutExt::~IdleTimeoutExt (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kidletime/kidletime-5.103.0/src/plugins/wayland/poller.cpp:78
#16 0x00007f146e50d38b in QtSharedPointer::ExternalRefCountData::destroy (this=0x564715d59250) at /usr/include/qt/QtCore/qsharedpointer_impl.h:149
#17 QSharedPointer<IdleTimeout>::deref (dd=0x564715d59250) at /usr/include/qt/QtCore/qsharedpointer_impl.h:458
#18 QSharedPointer<IdleTimeout>::deref (dd=0x564715d59250) at /usr/include/qt/QtCore/qsharedpointer_impl.h:454
#19 QSharedPointer<IdleTimeout>::deref (this=<optimized out>) at /usr/include/qt/QtCore/qsharedpointer_impl.h:453
#20 QSharedPointer<IdleTimeout>::~QSharedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qsharedpointer_impl.h:310
#21 QHashNode<int, QSharedPointer<IdleTimeout> >::~QHashNode (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qhash.h:147
#22 QHash<int, QSharedPointer<IdleTimeout> >::deleteNode2 (node=<optimized out>) at /usr/include/qt/QtCore/qhash.h:595
#23 0x00007f1474120b0c in QHashData::free_helper(void (*)(QHashData::Node*)) () from /usr/lib/libQt5Core.so.5
#24 0x00007f146e50df19 in QHash<int, QSharedPointer<IdleTimeout> >::freeData (x=<optimized out>, this=0x564715d587f0) at /usr/include/qt/QtCore/qhash.h:619
#25 QHash<int, QSharedPointer<IdleTimeout> >::~QHash (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qhash.h:250
#26 QHash<int, QSharedPointer<IdleTimeout> >::~QHash (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qhash.h:250
#27 Poller::~Poller (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kidletime/kidletime-5.103.0/src/plugins/wayland/poller.cpp:136
#28 0x00007f146e50df6d in Poller::~Poller (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kidletime/kidletime-5.103.0/src/plugins/wayland/poller.cpp:136
#29 0x00007f1474289488 in ?? () from /usr/lib/libQt5Core.so.5
#30 0x00007f147428998f in ?? () from /usr/lib/libQt5Core.so.5
#31 0x00007f1473a53f23 in __cxa_finalize (d=0x7f147451e000) at cxa_finalize.c:82
#32 0x00007f14740ca9e8 in ?? () from /usr/lib/libQt5Core.so.5
#33 0x00007f1474cd6510 in ?? ()
#34 0x00007f1474eb80e2 in _dl_call_fini (closure_map=0x7ffd2da5efb0, closure_map@entry=0x7f1474cd6510) at dl-call_fini.c:43
#35 0x00007f1474ebbf4e in _dl_fini () at dl-fini.c:114
#36 0x00007f1473a54445 in __run_exit_handlers (status=0, listp=0x7f1473bf1660 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#37 0x00007f1473a545b0 in __GI_exit (status=<optimized out>) at exit.c:138
--Type <RET> for more, q to quit, c to continue without paging--
#38 0x00007f1473a3c797 in __libc_start_call_main (main=main@entry=0x564714bc6050 <main(int, char**)>, argc=argc@entry=1, argv=argv@entry=0x7ffd2da5f438)
    at ../sysdeps/nptl/libc_start_call_main.h:74
#39 0x00007f1473a3c84a in __libc_start_main_impl (main=0x564714bc6050 <main(int, char**)>, argc=1, argv=0x7ffd2da5f438, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7ffd2da5f428) at ../csu/libc-start.c:360
#40 0x0000564714bc6e15 in _start ()
Comment 1 Nate Graham 2023-03-13 18:48:01 UTC

*** This bug has been marked as a duplicate of bug 465801 ***
Comment 2 ha51wl8j 2023-03-13 19:16:42 UTC
My report wasn't intended to be a crash report for baloo. It was more about the corrupted files in my home directory which should not appear no matter how much baloo crashes. I just thought it could be useful to include the stack trace as well.
Comment 3 tagwerk19 2023-03-15 06:41:15 UTC
(In reply to ha51wl8j from comment #2)
> ... more about the corrupted files in my home directory which should not appear no matter
> how much baloo crashes ...
There might be a "distribution" component...

I could replicate the crashes, with "left over" files in $HOME, on Arch.

I remember I didn't encounter the issue on Neon Unstable, but I did get a notification on Fedora 37:

    Kcrash: Application '???zU' crashing... (application name varies...)
    Kcrash: Attempting to start >:EzU
    Warning: socket path is too long
    Kcrash failed to exec(), errno = 2

But I did not seem to get a corrupt coredump

I tried Tumbleweed and got crashes, listed by coredumpctl, but no notifications or strange files.

Best to consider these as recollections (based on scribbled notes) rather than hard, reproduceable, evidence. In all cases the upgrade to Frameworks 5.104 fixed the baloo_file_extractor crash.