Summary: | Baloo uses 100% CPU. Never ending indexing while it is only one file left. | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-baloo | Reporter: | Vangelis <cyberang3l> |
Component: | Baloo File Daemon | Assignee: | baloo-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | joh82875, kode54, notuxius, stefan.bruens |
Priority: | NOR | ||
Version: | 5.44.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Vangelis
2018-04-16 07:27:44 UTC
If I exclude the brk syscall from the strace you can see that basically baloo_file_extractor is only calling `mmap` followed by `munmap` syscalls: $ sudo strace -p 15018 -f -e \!brk strace: Process 15018 attached with 3 threads strace: [ Process PID=15018 runs in x32 mode. ] [pid 15019] restart_syscall(<... resuming interrupted poll ...> <unfinished ...> [pid 15020] restart_syscall(<... resuming interrupted restart_syscall ...>strace: [ Process PID=15018 runs in 64 bit mode. ] <unfinished ...> [pid 15018] mmap(NULL, 4874240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a8000 [pid 15018] munmap(0x7fdfd47a8000, 4874240) = 0 [pid 15018] mmap(NULL, 4878336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a7000 [pid 15018] munmap(0x7fdfd47a7000, 4878336) = 0 [pid 15018] mmap(NULL, 4882432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a6000 [pid 15018] mmap(NULL, 4882432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42fe000 [pid 15018] munmap(0x7fdfd47a6000, 4882432) = 0 [pid 15018] munmap(0x7fdfd42fe000, 4882432) = 0 [pid 15018] mmap(NULL, 4886528, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a5000 [pid 15018] munmap(0x7fdfd47a5000, 4886528) = 0 [pid 15018] mmap(NULL, 4890624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a4000 [pid 15018] munmap(0x7fdfd47a4000, 4890624) = 0 [pid 15018] mmap(NULL, 4894720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a3000 [pid 15018] munmap(0x7fdfd47a3000, 4894720) = 0 [pid 15018] mmap(NULL, 4898816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a2000 [pid 15018] munmap(0x7fdfd47a2000, 4898816) = 0 [pid 15018] mmap(NULL, 4902912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a1000 [pid 15018] munmap(0x7fdfd47a1000, 4902912) = 0 [pid 15018] mmap(NULL, 4907008, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd47a0000 [pid 15018] mmap(NULL, 4907008, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42f2000 [pid 15018] munmap(0x7fdfd47a0000, 4907008) = 0 [pid 15018] munmap(0x7fdfd42f2000, 4907008) = 0 [pid 15018] mmap(NULL, 4911104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479f000 [pid 15018] mmap(NULL, 4911104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42f0000 [pid 15018] munmap(0x7fdfd479f000, 4911104) = 0 [pid 15018] munmap(0x7fdfd42f0000, 4911104) = 0 [pid 15018] mmap(NULL, 4915200, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479e000 [pid 15018] munmap(0x7fdfd479e000, 4915200) = 0 [pid 15018] mmap(NULL, 4919296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479d000 [pid 15018] munmap(0x7fdfd479d000, 4919296) = 0 [pid 15018] mmap(NULL, 4923392, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479c000 [pid 15018] munmap(0x7fdfd479c000, 4923392) = 0 [pid 15018] mmap(NULL, 4927488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479b000 [pid 15018] mmap(NULL, 4927488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42e8000 [pid 15018] munmap(0x7fdfd479b000, 4927488) = 0 [pid 15018] munmap(0x7fdfd42e8000, 4927488) = 0 [pid 15018] mmap(NULL, 4931584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd479a000 [pid 15018] munmap(0x7fdfd479a000, 4931584) = 0 [pid 15018] mmap(NULL, 4935680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4799000 [pid 15018] munmap(0x7fdfd4799000, 4935680) = 0 [pid 15018] mmap(NULL, 4939776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4798000 [pid 15018] munmap(0x7fdfd4798000, 4939776) = 0 [pid 15018] mmap(NULL, 4943872, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4797000 [pid 15018] munmap(0x7fdfd4797000, 4943872) = 0 [pid 15018] mmap(NULL, 4947968, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4796000 [pid 15018] munmap(0x7fdfd4796000, 4947968) = 0 [pid 15018] mmap(NULL, 4952064, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4795000 [pid 15018] mmap(NULL, 4952064, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42dc000 [pid 15018] munmap(0x7fdfd4795000, 4952064) = 0 [pid 15018] munmap(0x7fdfd42dc000, 4952064) = 0 [pid 15018] mmap(NULL, 4956160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4794000 [pid 15018] mmap(NULL, 4956160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42da000 [pid 15018] munmap(0x7fdfd4794000, 4956160) = 0 [pid 15018] munmap(0x7fdfd42da000, 4956160) = 0 [pid 15018] mmap(NULL, 4960256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4793000 [pid 15018] munmap(0x7fdfd4793000, 4960256) = 0 [pid 15018] mmap(NULL, 4964352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4792000 [pid 15018] munmap(0x7fdfd4792000, 4964352) = 0 [pid 15018] mmap(NULL, 4968448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4791000 [pid 15018] munmap(0x7fdfd4791000, 4968448) = 0 [pid 15018] mmap(NULL, 4972544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4790000 [pid 15018] mmap(NULL, 4972544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42d2000 [pid 15018] munmap(0x7fdfd4790000, 4972544) = 0 [pid 15018] munmap(0x7fdfd42d2000, 4972544) = 0 [pid 15018] mmap(NULL, 4976640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478f000 [pid 15018] munmap(0x7fdfd478f000, 4976640) = 0 [pid 15018] mmap(NULL, 4980736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478e000 [pid 15018] munmap(0x7fdfd478e000, 4980736) = 0 [pid 15018] mmap(NULL, 4984832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478d000 [pid 15018] munmap(0x7fdfd478d000, 4984832) = 0 [pid 15018] mmap(NULL, 4988928, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478c000 [pid 15018] munmap(0x7fdfd478c000, 4988928) = 0 [pid 15018] mmap(NULL, 4993024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478b000 [pid 15018] munmap(0x7fdfd478b000, 4993024) = 0 [pid 15018] mmap(NULL, 4997120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd478a000 [pid 15018] mmap(NULL, 4997120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42c6000 [pid 15018] munmap(0x7fdfd478a000, 4997120) = 0 [pid 15018] munmap(0x7fdfd42c6000, 4997120) = 0 [pid 15018] mmap(NULL, 5001216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4789000 [pid 15018] mmap(NULL, 5001216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42c4000 [pid 15018] munmap(0x7fdfd4789000, 5001216) = 0 [pid 15018] munmap(0x7fdfd42c4000, 5001216) = 0 [pid 15018] mmap(NULL, 5005312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4788000 [pid 15018] munmap(0x7fdfd4788000, 5005312) = 0 [pid 15018] mmap(NULL, 5009408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4787000 [pid 15018] munmap(0x7fdfd4787000, 5009408) = 0 [pid 15018] mmap(NULL, 5013504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4786000 [pid 15018] munmap(0x7fdfd4786000, 5013504) = 0 [pid 15018] mmap(NULL, 5017600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4785000 [pid 15018] mmap(NULL, 5017600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42bc000 [pid 15018] munmap(0x7fdfd4785000, 5017600) = 0 [pid 15018] munmap(0x7fdfd42bc000, 5017600) = 0 [pid 15018] mmap(NULL, 5021696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4784000 [pid 15018] munmap(0x7fdfd4784000, 5021696) = 0 [pid 15018] mmap(NULL, 5025792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4783000 [pid 15018] munmap(0x7fdfd4783000, 5025792) = 0 [pid 15018] mmap(NULL, 5029888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4782000 [pid 15018] munmap(0x7fdfd4782000, 5029888) = 0 [pid 15018] mmap(NULL, 5033984, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4781000 [pid 15018] munmap(0x7fdfd4781000, 5033984) = 0 [pid 15018] mmap(NULL, 5038080, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd4780000 [pid 15018] munmap(0x7fdfd4780000, 5038080) = 0 [pid 15018] mmap(NULL, 5042176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd477f000 [pid 15018] mmap(NULL, 5042176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42b0000 [pid 15018] munmap(0x7fdfd477f000, 5042176) = 0 [pid 15018] munmap(0x7fdfd42b0000, 5042176) = 0 [pid 15018] mmap(NULL, 5046272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd477e000 [pid 15018] mmap(NULL, 5046272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd42ae000 [pid 15018] munmap(0x7fdfd477e000, 5046272) = 0 [pid 15018] munmap(0x7fdfd42ae000, 5046272) = 0 [pid 15019] <... restart_syscall resumed> ) = 1 [pid 15019] recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"U\2\216\1\302\331\332\0\3\24\4\0\20\0\0\0\0\0\0\24\24\24\24\24\0\0\3\37%\2\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 [pid 15019] write(6, "\1\0\0\0\0\0\0\0", 8) = 8 [pid 15019] poll([{fd=4, events=POLLIN}], 1, -1 <unfinished ...> [pid 15018] mmap(NULL, 5050368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdfd477d000 [pid 15018] munmap(0x7fdfd477d000, 5050368) = 0 ^Cstrace: Process 15018 detached strace: Process 15019 detached strace: Process 15020 detached One time 100% CPU on one core for baloo_file_extractor in: Plasma: 5.12.4 Apps: 17.12.3 Frameworks: 5.45.0 Qt: 5.10.1 Kernel: 4.14.34-1-MANJARO OS: Netrunner Rolling Git commit f57c4bc27b81f2b40d910d376a0bb531cd8472c6 by Stefan Brüns. Committed on 03/05/2018 at 22:37. Pushed by bruns into branch 'master'. Avoid infinite loops when fetching the URL from DocumentUrlDB Summary: Some users apparently have DBs which contain infinite loops in the idTree (a parentId pointing to itself or one of its children). This manifests in either crashes due to exhausted memory and/or the process being stuck with 100% CPU load. The problem can only be completely solved by either recreating the DB, or by cleaning the DB from any problematic records. As in interim solution, stop the code from crashing. Related: bug 378754, bug 385846, bug 391258 Reviewers: #baloo, michaelh, #frameworks, ngraham Reviewed By: ngraham Subscribers: ngraham, #frameworks Tags: #frameworks, #baloo Differential Revision: https://phabricator.kde.org/D12335 M +10 -2 src/engine/documenturldb.cpp https://commits.kde.org/baloo/f57c4bc27b81f2b40d910d376a0bb531cd8472c6 No feedback from reporters. Assumed fixed, see last comment. If I have this issue, where should I find this database, and where can I send it for debugging? I had to disable indexing on Kubuntu 18.04.1 because they apparently never applied this patch. Maybe it’s applied in 18.10, which I recently installed. I’d still like to know if it’s a corrupt database. |