Bug 428726 - baloo_file_extractor crashes on first login following cold boot, or following a warm reboot
Summary: baloo_file_extractor crashes on first login following cold boot, or following...
Status: RESOLVED DUPLICATE of bug 405210
Alias: None
Product: frameworks-kfilemetadata
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.54.0
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: Pinak Ahuja
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-11-05 13:27 UTC by Bosco Robinson
Modified: 2020-11-05 15:35 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bosco Robinson 2020-11-05 13:27:00 UTC
Application: baloo_file_extractor (5.54.0)

Qt Version: 5.11.3
Frameworks Version: 5.54.0
Operating System: Linux 5.8.0-0.bpo.2-amd64 x86_64
Distribution: Debian GNU/Linux 10 (buster)

-- Information about the crash:
I was Logging in for the first time after a cold boot.

baloo_file_extractor always crashes on the first login following cold boot, or following a warm reboot.

The crash can be reproduced every time.

-- Backtrace:
Application: Baloo File Extractor (baloo_file_extractor), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f839093ef80 (LWP 2099))]

Thread 3 (Thread 0x7f838ecdc700 (LWP 2173)):
#0  0x00007f839407a819 in __GI___poll (fds=0x7f83800131f0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f839306e136 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f83800131f0, timeout=<optimized out>, context=0x7f8380000bf0) at ../../../glib/gmain.c:4221
#2  g_main_context_iterate (context=context@entry=0x7f8380000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3915
#3  0x00007f839306e25c in g_main_context_iteration (context=0x7f8380000bf0, may_block=may_block@entry=1) at ../../../glib/gmain.c:3981
#4  0x00007f839458e743 in QEventDispatcherGlib::processEvents (this=0x7f8380000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#5  0x00007f839453c15b in QEventLoop::exec (this=this@entry=0x7f838ecdbd70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#6  0x00007f839438be76 in QThread::exec (this=this@entry=0x7f8395533d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#7  0x00007f83954b4545 in QDBusConnectionManager::run (this=0x7f8395533d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#8  0x00007f8394395a67 in QThreadPrivate::start (arg=0x7f8395533d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:367
#9  0x00007f8393c6cfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#10 0x00007f83940854cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f838f734700 (LWP 2103)):
#0  0x00007f839407a819 in __GI___poll (fds=fds@entry=0x7f838f733cb8, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f8392ff6cf7 in poll (__timeout=-1, __nfds=1, __fds=0x7f838f733cb8) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x56196eff8850, cond=cond@entry=0x56196eff8890, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:479
#3  0x00007f8392ff891a in xcb_wait_for_event (c=0x56196eff8850) at ../../src/xcb_in.c:697
#4  0x00007f83904f5d79 in QXcbEventReader::run (this=0x56196f002840) at qxcbconnection.h:409
#5  0x00007f8394395a67 in QThreadPrivate::start (arg=0x56196f002840) at thread/qthread_unix.cpp:367
#6  0x00007f8393c6cfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#7  0x00007f83940854cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f839093ef80 (LWP 2099)):
[KCrash Handler]
#6  0x00007f838dc1a0e8 in Exiv2::DataValue::toLong(long) const () from /lib/x86_64-linux-gnu/libexiv2.so.14
#7  0x00007f8390637165 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_exiv2extractor.so
#8  0x00007f83906377a9 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_exiv2extractor.so
#9  0x000056196df21e6b in Baloo::App::index (this=this@entry=0x7ffecb955e70, tr=0x56196f16a3a0, url=..., id=id@entry=22514471968767494) at ./src/file/extractor/app.cpp:191
#10 0x000056196df23d07 in Baloo::App::processNextFile (this=0x7ffecb955e70) at ./src/file/extractor/app.cpp:111
#11 0x00007f8394572426 in QtPrivate::QSlotObjectBase::call (a=0x7ffecb955890, r=<optimized out>, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376
#12 QSingleShotTimer::timerEvent (this=0x56196f1e2fc0) at kernel/qtimer.cpp:318
#13 0x00007f839456702b in QObject::event (this=0x56196f1e2fc0, e=<optimized out>) at kernel/qobject.cpp:1232
#14 0x00007f8394eb84c1 in QApplicationPrivate::notify_helper (this=this@entry=0x56196efe6870, receiver=receiver@entry=0x56196f1e2fc0, e=e@entry=0x7ffecb955b50) at kernel/qapplication.cpp:3727
#15 0x00007f8394ebf970 in QApplication::notify (this=0x7ffecb955e60, receiver=0x56196f1e2fc0, e=0x7ffecb955b50) at kernel/qapplication.cpp:3486
#16 0x00007f839453d489 in QCoreApplication::notifyInternal2 (receiver=0x56196f1e2fc0, event=event@entry=0x7ffecb955b50) at ../../include/QtCore/5.11.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
#17 0x00007f839458db38 in QCoreApplication::sendEvent (event=0x7ffecb955b50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#18 QTimerInfoList::activateTimers (this=0x56196f0e7ce0) at kernel/qtimerinfo_unix.cpp:643
#19 0x00007f839458e3cc in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#20 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:229
#21 0x00007f839306df2e in g_main_dispatch (context=0x7f8388004ff0) at ../../../glib/gmain.c:3182
#22 g_main_context_dispatch (context=context@entry=0x7f8388004ff0) at ../../../glib/gmain.c:3847
#23 0x00007f839306e1c8 in g_main_context_iterate (context=context@entry=0x7f8388004ff0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#24 0x00007f839306e25c in g_main_context_iteration (context=0x7f8388004ff0, may_block=may_block@entry=1) at ../../../glib/gmain.c:3981
#25 0x00007f839458e727 in QEventDispatcherGlib::processEvents (this=0x56196f03f610, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#26 0x00007f839058c491 in QPAEventDispatcherGlib::processEvents (this=0x56196f03f610, flags=...) at qeventdispatcher_glib.cpp:69
#27 0x00007f839453c15b in QEventLoop::exec (this=this@entry=0x7ffecb955dd0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#28 0x00007f8394544132 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#29 0x000056196df21323 in main (argc=<optimized out>, argv=0x7ffecb956098) at ./src/file/extractor/main.cpp:60
[Inferior 1 (process 2099) detached]

Reported using DrKonqi
Comment 1 Bosco Robinson 2020-11-05 13:36:14 UTC
This crash does not happen when I log back in on a system that was previously booted up and left up and running.
Comment 2 Nate Graham 2020-11-05 14:20:16 UTC
You're using old versions of KDE software. Please consider upgrading.

*** This bug has been marked as a duplicate of bug 405210 ***
Comment 3 Bosco Robinson 2020-11-05 14:29:53 UTC
Thanks! I'll upgrade KDE. Just an FYI, the version of KDE I'm running is the default version provided by the stable Debian 10 buster distro.

I will report this information back to the appropriate Debian folks if you can tell me the minimum version of KDE in which this issue is resolved.
Comment 4 Nate Graham 2020-11-05 14:47:23 UTC
(In reply to Bosco Robinson from comment #3)
> Thanks! I'll upgrade KDE. Just an FYI, the version of KDE I'm running is the
> default version provided by the stable Debian 10 buster distro.
Yeah, and Debian ships really really old software :) The current version of KDE Frameworks is 5.75; you've got 5.54. It's 21 months old.  You're missing a lot of bugfixes.

> I will report this information back to the appropriate Debian folks if you
> can tell me the minimum version of KDE in which this issue is resolved.
Thanks. I think the fix was in 5.58, but it's always recommended to use the newest version of KDE frameworks if possible. It was designed as a rolling release product and distros that lock a particular version and never update it are deviating from the developers' intentions for how it should be offered to users.
Comment 5 Stefan Brüns 2020-11-05 15:35:58 UTC
(In reply to Nate Graham from comment #4)
> (In reply to Bosco Robinson from comment #3)
 
> > I will report this information back to the appropriate Debian folks if you
> > can tell me the minimum version of KDE in which this issue is resolved.
> Thanks. I think the fix was in 5.58, but it's always recommended to use the
> newest version of KDE frameworks if possible. It was designed as a rolling
> release product and distros that lock a particular version and never update
> it are deviating from the developers' intentions for how it should be
> offered to users.

It is not only the packages provided by the KDE project (Frameworks, Applications), but also third party dependencies.

For metadata extraction, baloo uses KFileMetadata, which in turn uses many third party libraries, e.g. taglib, ffmpeg, libepub.

We try to keep the effects of upstream library bugs as small as possible, by doing extra checks, and by running this code in separate processes.

We have found several bugs in taglib and libepub (that I can remember), and where fixes have been incorporated upstream (Taglib), or at least patches been created to pick up for distributions (libepub, dormant/nonexisting upstream).

In this case, the crash is in the Exiv2 library, which is horribly outdated. Buster uses libexiv 0.25, which is from 2015. Debian is doing a very bad job here.