Bug 477154 - The Baloo service crashes after enabling the 'Index file contents' option
Summary: The Baloo service crashes after enabling the 'Index file contents' option
Status: REPORTED
Alias: None
Product: frameworks-baloo
Classification: Frameworks and Libraries
Component: Baloo File Daemon (show other bugs)
Version: unspecified
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: baloo-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-17 18:12 UTC by Lucy
Modified: 2024-07-07 14:17 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Baloo KCrash File (9.52 KB, text/vnd.kde.kcrash-report)
2023-11-17 18:12 UTC, Lucy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lucy 2023-11-17 18:12:54 UTC
Created attachment 163250 [details]
Baloo KCrash File

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE 
1. The Baloo service crashes after enabling the 'Index file contents' option. The error does not occur consistently.


OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS

Linux/KDE Plasma:
Operating System: Debian GNU/Linux 12
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.8

ADDITIONAL INFORMATION
Comment 1 Lucy 2023-11-17 18:16:48 UTC
Comment on attachment 163250 [details]
Baloo KCrash File

>Application: baloo_file (baloo_file), signal: Segmentation fault
>
>           PID: 1876 (baloo_file)
>           UID: 1000 (lucy)
>           GID: 1000 (lucy)
>        Signal: 11 (SEGV)
>     Timestamp: Thu 2023-11-16 02:38:07 CET (2h 31min ago)
>  Command Line: /usr/lib/x86_64-linux-gnu/libexec/baloo_file
>    Executable: /usr/lib/x86_64-linux-gnu/libexec/baloo_file
> Control Group: /user.slice/user-1000.slice/user@1000.service/background.slice/kde-baloo.service
>          Unit: user@1000.service
>     User Unit: kde-baloo.service
>         Slice: user-1000.slice
>     Owner UID: 1000 (lucy)
>       Boot ID: 9ca02c462c58460ebbfbac59d59a9cc3
>    Machine ID: 6db60355bc8e4fccb5a531dd67bc08d4
>      Hostname: june
>       Storage: /var/lib/systemd/coredump/core.baloo_file.1000.9ca02c462c58460ebbfbac59d59a9cc3.1876.1700098687000000.zst (present)
>  Size on Disk: 9.0M
>       Message: Process 1876 (baloo_file) of user 1000 dumped core.
>                
>                Module libsystemd.so.0 from deb systemd-252.17-1~deb12u1.amd64
>                Module libudev.so.1 from deb systemd-252.17-1~deb12u1.amd64
>                Stack trace of thread 1876:
>                #0  0x00007fbe9c2a9d3c __pthread_kill_implementation (libc.so.6 + 0x8ad3c)
>                #1  0x00007fbe9c25af32 __GI_raise (libc.so.6 + 0x3bf32)
>                #2  0x00007fbe9cfabb46 _ZN6KCrash19defaultCrashHandlerEi (libKF5Crash.so.5 + 0x5b46)
>                #3  0x00007fbe9c25afd0 __restore_rt (libc.so.6 + 0x3bfd0)
>                #4  0x0000557d83358770 n/a (baloo_file + 0x13770)
>                #5  0x0000557d8335885d n/a (baloo_file + 0x1385d)
>                #6  0x0000557d83365bf1 n/a (baloo_file + 0x20bf1)
>                #7  0x00007fbe9cadd6f0 _ZN7QObject5eventEP6QEvent (libQt5Core.so.5 + 0x2dd6f0)
>                #8  0x00007fbe9cab16cd _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x2b16cd)
>                #9  0x00007fbe9cab4681 _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData (libQt5Core.so.5 + 0x2b4681)
>                #10 0x00007fbe9cb0a153 n/a (libQt5Core.so.5 + 0x30a153)
>                #11 0x00007fbe9b11e7a9 g_main_context_dispatch (libglib-2.0.so.0 + 0x547a9)
>                #12 0x00007fbe9b11ea38 n/a (libglib-2.0.so.0 + 0x54a38)
>                #13 0x00007fbe9b11eacc g_main_context_iteration (libglib-2.0.so.0 + 0x54acc)
>                #14 0x00007fbe9cb09836 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x309836)
>                #15 0x00007fbe9cab017b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b017b)
>                #16 0x00007fbe9cab82d6 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2b82d6)
>                #17 0x0000557d83353982 n/a (baloo_file + 0xe982)
>                #18 0x00007fbe9c2461ca __libc_start_call_main (libc.so.6 + 0x271ca)
>                #19 0x00007fbe9c246285 __libc_start_main_impl (libc.so.6 + 0x27285)
>                #20 0x0000557d83353b61 n/a (baloo_file + 0xeb61)
>                
>                Stack trace of thread 3227:
>                #0  0x00007fbe9c31b05f __GI___poll (libc.so.6 + 0xfc05f)
>                #1  0x00007fbe9cfab150 n/a (libKF5Crash.so.5 + 0x5150)
>                #2  0x00007fbe9cfabad6 _ZN6KCrash19defaultCrashHandlerEi (libKF5Crash.so.5 + 0x5ad6)
>                #3  0x00007fbe9c25afd0 __restore_rt (libc.so.6 + 0x3bfd0)
>                #4  0x0000557d833655c0 n/a (baloo_file + 0x205c0)
>                #5  0x0000557d8336642d n/a (baloo_file + 0x2142d)
>                #6  0x00007fbe9c8ceef1 n/a (libQt5Core.so.5 + 0xceef1)
>                #7  0x00007fbe9c8cbd43 n/a (libQt5Core.so.5 + 0xcbd43)
>                #8  0x00007fbe9c2a8044 start_thread (libc.so.6 + 0x89044)
>                #9  0x00007fbe9c32861c __clone3 (libc.so.6 + 0x10961c)
>                
>                Stack trace of thread 2055:
>                #0  0x00007fbe9c31d941 pselect64_syscall (libc.so.6 + 0xfe941)
>                #1  0x00007fbe9c0e0a62 n/a (libusbmuxd-2.0.so.6 + 0x2a62)
>                #2  0x00007fbe9c0e1e60 n/a (libusbmuxd-2.0.so.6 + 0x3e60)
>                #3  0x00007fbe9c2a8044 start_thread (libc.so.6 + 0x89044)
>                #4  0x00007fbe9c32861c __clone3 (libc.so.6 + 0x10961c)
>                
>                Stack trace of thread 1888:
>                #0  0x00007fbe9c31b05f __GI___poll (libc.so.6 + 0xfc05f)
>                #1  0x00007fbe9b11e9ae n/a (libglib-2.0.so.0 + 0x549ae)
>                #2  0x00007fbe9b11eacc g_main_context_iteration (libglib-2.0.so.0 + 0x54acc)
>                #3  0x00007fbe9cb0984e _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30984e)
>                #4  0x00007fbe9cab017b _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b017b)
>                #5  0x00007fbe9c8cab87 _ZN7QThread4execEv (libQt5Core.so.5 + 0xcab87)
>                #6  0x00007fbe9ce82487 n/a (libQt5DBus.so.5 + 0x17487)
>                #7  0x00007fbe9c8cbd43 n/a (libQt5Core.so.5 + 0xcbd43)
>                #8  0x00007fbe9c2a8044 start_thread (libc.so.6 + 0x89044)
>                #9  0x00007fbe9c32861c __clone3 (libc.so.6 + 0x10961c)
>                ELF object binary architecture: AMD x86-64
>
>[New LWP 1876]
>[New LWP 3227]
>[New LWP 2055]
>[New LWP 1888]
>[Thread debugging using libthread_db enabled]
>Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>Core was generated by `/usr/lib/x86_64-linux-gnu/libexec/baloo_file'.
>Program terminated with signal SIGSEGV, Segmentation fault.
>#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
>[Current thread is 1 (Thread 0x7fbe9ac86540 (LWP 1876))]
>[Current thread is 1 (Thread 0x7fbe9ac86540 (LWP 1876))]
>
>Thread 4 (Thread 0x7fbe97fff6c0 (LWP 1888)):
>#0  0x00007fbe9c31b05f in __GI___poll (fds=0x7fbe900029e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
>#1  0x00007fbe9b11e9ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
>#2  0x00007fbe9b11eacc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
>#3  0x00007fbe9cb0984e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#4  0x00007fbe9cab017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#5  0x00007fbe9c8cab87 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#6  0x00007fbe9ce82487 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
>#7  0x00007fbe9c8cbd43 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#8  0x00007fbe9c2a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
>#9  0x00007fbe9c32861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
>
>Thread 3 (Thread 0x7fbe974fc6c0 (LWP 2055)):
>#0  pselect64_syscall (sigmask=<optimized out>, timeout=<optimized out>, exceptfds=0x0, writefds=0x0, readfds=0x7fbe974f3b10, nfds=6) at ../sysdeps/unix/sysv/linux/pselect.c:34
>#1  __pselect (nfds=6, readfds=0x7fbe974f3b10, writefds=0x0, exceptfds=0x0, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/pselect.c:56
>#2  0x00007fbe9c0e0a62 in ?? () from /lib/x86_64-linux-gnu/libusbmuxd-2.0.so.6
>#3  0x00007fbe9c0e1e60 in ?? () from /lib/x86_64-linux-gnu/libusbmuxd-2.0.so.6
>#4  0x00007fbe9c2a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
>#5  0x00007fbe9c32861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
>
>Thread 2 (Thread 0x7fbe96cfb6c0 (LWP 3227)):
>[KCrash Handler]
>#4  0x0000557d833655c0 in ?? ()
>#5  0x0000557d8336642d in ?? ()
>#6  0x00007fbe9c8ceef1 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#7  0x00007fbe9c8cbd43 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#8  0x00007fbe9c2a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
>#9  0x00007fbe9c32861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
>
>Thread 1 (Thread 0x7fbe9ac86540 (LWP 1876)):
>[KCrash Handler]
>#5  0x0000557d83358770 in ?? ()
>#6  0x0000557d8335885d in ?? ()
>#7  0x0000557d83365bf1 in ?? ()
>#8  0x00007fbe9cadd6f0 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#9  0x00007fbe9cab16cd in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#10 0x00007fbe9cab4681 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#11 0x00007fbe9cb0a153 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#12 0x00007fbe9b11e7a9 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
>#13 0x00007fbe9b11ea38 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
>#14 0x00007fbe9b11eacc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
>#15 0x00007fbe9cb09836 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#16 0x00007fbe9cab017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#17 0x00007fbe9cab82d6 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
>#18 0x0000557d83353982 in ?? ()
>#19 0x00007fbe9c2461ca in __libc_start_call_main (main=main@entry=0x557d833536e0, argc=argc@entry=1, argv=argv@entry=0x7ffd6ffbbe18) at ../sysdeps/nptl/libc_start_call_main.h:58
>#20 0x00007fbe9c246285 in __libc_start_main_impl (main=0x557d833536e0, argc=1, argv=0x7ffd6ffbbe18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd6ffbbe08) at ../csu/libc-start.c:360
>#21 0x0000557d83353b61 in ?? ()
Comment 2 tagwerk19 2023-11-21 15:59:48 UTC
Strange it is baloo_file crashing when enabling content indexing. I was assuming that was the domain of baloo_file_extractor... 

What filesystem are you using... Anything exotic? (BTRFS may be considered exotic :-)
Comment 3 Lucy 2023-11-21 16:11:08 UTC
Q: "What filesystem are you using... Anything exotic? (BTRFS may be considered exotic :-)"

I use the XFS for Root and BtrFS for Home ;-)
Comment 4 tagwerk19 2023-11-21 17:26:40 UTC
(In reply to Lucy June Schonder from comment #3)
> I use the XFS for Root and BtrFS for Home ;-)
My guess in that case is that you have the BTRFS partition mounted with a different device number. It can (easily) be that, if you are using BTRFS and have multiple subvolumes, the partition "appears" with a different minor device number on a reboot as the of a race during the initial (parallel) mount.

Baloo uses a combination of the device number and inode as its internal Document ID. If it sees a file, even one it has seen before, appearing with a different device number it thinks it is a new file and indexes it again. It has been OpenSUSE users who have suffered most from this but recently also Fedora.

A fix for this has landed with Frameworks 5.111. Not a perfect fix but I think reasonable enough...
Comment 5 tagwerk19 2024-07-07 14:17:26 UTC
(In reply to tagwerk19 from comment #4)
> .... A fix for this has landed with Frameworks 5.111. Not a perfect fix but I
> think reasonable enough...
I think the dust has probably settled now, there have been fixes for KF5 and KF6. Probably the important one is for KF6 nowadays:
    https://invent.kde.org/frameworks/baloo/-/merge_requests/131

There's also been a patch to limit the amount of RAM Baloo can grab hold of
     https://invent.kde.org/frameworks/baloo/-/merge_requests/121
and a fix to split up the initial indexing work, when Baloo is given a *load* or new files to index:
     https://invent.kde.org/frameworks/baloo/-/merge_requests/148

Finally there's a patch that should cut down on the "random crashes" that Baloo suffers from
     https://invent.kde.org/frameworks/baloo/-/merge_requests/193

These should, I hope,  mean you have a more stable system...