Bug 453148 - Elisa crashes in KFileMetaData::EmbeddedImageData::imageData() shortly after launch
Summary: Elisa crashes in KFileMetaData::EmbeddedImageData::imageData() shortly after ...
Status: RESOLVED WORKSFORME
Alias: None
Product: frameworks-kfilemetadata
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.92.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Pinak Ahuja
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-04-28 15:08 UTC by dave
Modified: 2023-12-12 03:46 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dave 2022-04-28 15:08:46 UTC
Application: elisa (21.12.3)

Qt Version: 5.15.3
Frameworks Version: 5.92.0
Operating System: Linux 5.15.0-27-generic x86_64
Windowing System: X11
Distribution: Ubuntu 22.04 LTS
DrKonqi: 5.24.4 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:
Unlike some other crash report users, I do not need to be scrolling any particular view for it to crash, only that it is scanning my folders (on NTFS) and if I launch Elisa with a lot of new folders to scan, it takes a while to crash.  Next time I launch, a bit quicker to crash (as if it saved some data for files scanned before the crash) then next time, very quick to crash. Has always been this way since I tried to import my collection.

The crash can be reproduced every time.

-- Backtrace:
Application: Elisa (elisa), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f190f9c573e in TagLib::ByteVector::ByteVector (this=<optimized out>, v=..., this=<optimized out>, v=...) at ./taglib/toolkit/tbytevector.cpp:358
#5  0x00007f190f9adf16 in TagLib::ID3v2::AttachedPictureFrame::picture (this=<optimized out>) at ./taglib/mpeg/id3v2/frames/attachedpictureframe.cpp:115
#6  0x00007f18fc6050fe in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_taglibextractor.so
#7  0x00007f18fc608c1c in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_taglibextractor.so
#8  0x00007f1927656997 in KFileMetaData::EmbeddedImageData::imageData (this=<optimized out>, fileUrl=..., types=..., types@entry=...) at ./src/embeddedimagedata.cpp:71
#9  0x00007f1929df29b0 in FileScanner::checkEmbeddedCoverImage (this=this@entry=0x7f19140136c8, localFileName=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h:121
#10 0x00007f1929df4035 in FileScanner::scanProperties (this=this@entry=0x7f19140136c8, localFileName=..., trackData=...) at ./src/filescanner.cpp:234
#11 0x00007f1929df4560 in FileScanner::scanOneFile (this=0x7f19140136c8, scanFile=..., scanFileInfo=...) at ./src/filescanner.cpp:145
#12 0x00007f1929df4c06 in AbstractFileListing::scanOneFile (this=0x56552c447880, scanFile=..., scanFileInfo=..., watchForFileSystemChanges=...) at /usr/include/c++/11/bits/unique_ptr.h:173
#13 0x00007f1929dfc18c in LocalFileListing::scanOneFile (this=0x56552c447880, scanFile=..., scanFileInfo=..., watchForFileSystemChanges=...) at ./src/file/localfilelisting.cpp:84
#14 0x00007f1929df7e2e in AbstractFileListing::scanDirectory (this=0x56552c447880, newFiles=..., path=..., watchForFileSystemChanges=...) at ./src/abstractfile/abstractfilelisting.cpp:230
#15 0x00007f1929df761f in AbstractFileListing::scanDirectory (this=this@entry=0x56552c447880, newFiles=..., path=..., watchForFileSystemChanges=..., watchForFileSystemChanges@entry=...) at ./src/abstractfile/abstractfilelisting.cpp:209
#16 0x00007f1929df83ab in AbstractFileListing::scanDirectoryTree (this=0x56552c447880, path=...) at ./src/abstractfile/abstractfilelisting.cpp:383
#17 0x00007f1929dfbd2f in LocalFileListing::triggerRefreshOfContent (this=0x56552c447880) at ./src/file/localfilelisting.cpp:60
#18 0x00007f1929df058c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QHash<QUrl, QDateTime> const&>, void, void (AbstractFileListing::*)(QHash<QUrl, QDateTime>)>::call (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
#19 QtPrivate::FunctionPointer<void (AbstractFileListing::*)(QHash<QUrl, QDateTime>)>::call<QtPrivate::List<QHash<QUrl, QDateTime> const&>, void> (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
#20 QtPrivate::QSlotObject<void (AbstractFileListing::*)(QHash<QUrl, QDateTime>), QtPrivate::List<QHash<QUrl, QDateTime> const&>, void>::impl (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
#21 0x00007f192871a40e in QObject::event (this=0x56552c447880, e=0x56552c808540) at kernel/qobject.cpp:1314
#22 0x00007f1929760713 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56552c447880, e=0x56552c808540) at kernel/qapplication.cpp:3637
#23 0x00007f19286ece2a in QCoreApplication::notifyInternal2 (receiver=0x56552c447880, event=0x56552c808540) at kernel/qcoreapplication.cpp:1064
#24 0x00007f19286eff17 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x56552c459a90) at kernel/qcoreapplication.cpp:1821
#25 0x00007f1928746a57 in postEventSourceDispatch (s=0x7f18b0004790) at kernel/qeventdispatcher_glib.cpp:277
#26 0x00007f1926245d1b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f192629a6f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f19287460a8 in QEventDispatcherGlib::processEvents (this=0x7f18b0000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7f18f4ff8b40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#31 0x00007f19284feaf2 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#32 0x00007f19284ffca1 in QThreadPrivate::start (arg=0x56552c448d10) at thread/qthread_unix.cpp:329
#33 0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#34 0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 6 (Thread 0x7f18f57fa640 (LWP 9250) "QThread"):
#1  0x00007f19262458b9 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f192629a5c3 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f192874611e in QEventDispatcherGlib::processEvents (this=0x7f18bc000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7f18f57f9b40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007f19284feaf2 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f19284ffca1 in QThreadPrivate::start (arg=0x56552c37e8a0) at thread/qthread_unix.cpp:329
#8  0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#9  0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 5 (Thread 0x7f190f93d640 (LWP 9233) "QQuickPixmapRea"):
#1  0x00007f192629a696 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f192874611e in QEventDispatcherGlib::processEvents (this=0x7f1908000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7f190f93cb00, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#5  0x00007f19284feaf2 in QThread::exec (this=this@entry=0x56552c5bb750) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f1927198a5a in QQuickPixmapReader::run (this=0x56552c5bb750) at util/qquickpixmapcache.cpp:1024
#7  0x00007f19284ffca1 in QThreadPrivate::start (arg=0x56552c5bb750) at thread/qthread_unix.cpp:329
#8  0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#9  0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 4 (Thread 0x7f19193ef640 (LWP 9232) "QQmlThread"):
#1  0x00007f192629a696 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f192874611e in QEventDispatcherGlib::processEvents (this=0x7f1910000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7f19193eeb20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#5  0x00007f19284feaf2 in QThread::exec (this=this@entry=0x56552bc69b70) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f1928cc28c9 in QQmlThreadPrivate::run (this=0x56552bc69b70) at qml/ftw/qqmlthread.cpp:155
#7  0x00007f19284ffca1 in QThreadPrivate::start (arg=0x56552bc69b70) at thread/qthread_unix.cpp:329
#8  0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#9  0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 3 (Thread 0x7f192186c640 (LWP 9231) "QDBusConnection"):
#1  0x00007f192629a696 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f192874611e in QEventDispatcherGlib::processEvents (this=0x7f1914000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7f192186bb10, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#5  0x00007f19284feaf2 in QThread::exec (this=this@entry=0x7f1927647d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f19275cdf0b in QDBusConnectionManager::run (this=0x7f1927647d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ./src/dbus/qdbusconnection.cpp:179
#7  0x00007f19284ffca1 in QThreadPrivate::start (arg=0x7f1927647d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#8  0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#9  0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 2 (Thread 0x7f19222e2640 (LWP 9230) "QXcbEventQueue"):
#1  0x00007f192592a7e2 in poll (__timeout=-1, __nfds=1, __fds=0x7f19222e1a48) at /usr/include/x86_64-linux-gnu/bits/poll2.h:39
#2  _xcb_conn_wait (c=0x56552b65eb00, vector=0x0, count=0x0, cond=<optimized out>) at ../../src/xcb_conn.c:480
#3  0x00007f192592c22c in _xcb_conn_wait (count=0x0, vector=0x0, cond=0x56552b65eb40, c=0x56552b65eb00) at ../../src/xcb_conn.c:446
#4  xcb_wait_for_event (c=0x56552b65eb00) at ../../src/xcb_in.c:697
#5  0x00007f1922420d08 in QXcbEventQueue::run (this=0x56552b658370) at ./src/plugins/platforms/xcb/qxcbeventqueue.cpp:228
#6  0x00007f19284ffca1 in QThreadPrivate::start (arg=0x56552b658370) at thread/qthread_unix.cpp:329
#7  0x00007f1928071b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#8  0x00007f1928103a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 1 (Thread 0x7f1922ac59c0 (LWP 9229) "elisa"):
#1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x56552c93ff04) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x56552c93ff04, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#3  0x00007f1928070ac1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56552c93feb0, cond=0x56552c93fed8) at ./nptl/pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x56552c93fed8, mutex=0x56552c93feb0) at ./nptl/pthread_cond_wait.c:627
#5  0x00007f1928505ceb in QWaitConditionPrivate::wait (deadline=..., deadline=..., this=0x56552c93feb0) at thread/qwaitcondition_unix.cpp:146
#6  QWaitCondition::wait (this=<optimized out>, mutex=0x56552c940108, deadline=...) at thread/qwaitcondition_unix.cpp:225
#7  0x00007f192725478a in QSGThreadedRenderLoop::polishAndSync (this=0x56552ba15400, w=0x56552c942020, inExpose=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68
#8  0x00007f19272c25df in QQuickWindow::event (this=0x56552b7a6520, e=0x7ffe611a71b0) at items/qquickwindow.cpp:1858
#9  0x00007f1929760713 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56552b7a6520, e=0x7ffe611a71b0) at kernel/qapplication.cpp:3637
#10 0x00007f19286ece2a in QCoreApplication::notifyInternal2 (receiver=0x56552b7a6520, event=0x7ffe611a71b0) at kernel/qcoreapplication.cpp:1064
#11 0x00007f1928f4c1d4 in QPlatformWindow::deliverUpdateRequest (this=<optimized out>) at kernel/qplatformwindow.cpp:796
#12 QPlatformWindow::windowEvent (this=<optimized out>, event=<optimized out>) at kernel/qplatformwindow.cpp:476
#13 0x00007f192976794a in QApplication::notify (this=0x7ffe611a77c0, receiver=0x56552b7a6520, e=0x7ffe611a7440) at kernel/qapplication.cpp:2879
#14 0x00007f19286ece2a in QCoreApplication::notifyInternal2 (receiver=0x56552b7a6520, event=0x7ffe611a7440) at kernel/qcoreapplication.cpp:1064
#15 0x00007f19287453db in QTimerInfoList::activateTimers (this=0x56552b779a40) at kernel/qtimerinfo_unix.cpp:643
#16 0x00007f1928745d24 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#17 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
#18 0x00007f1926245d1b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007f192629a6f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f19262433c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f192874611e in QEventDispatcherGlib::processEvents (this=0x56552b77a410, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#22 0x00007f19286eb74b in QEventLoop::exec (this=this@entry=0x7ffe611a7680, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#23 0x00007f19286f3ce4 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#24 0x00007f1928f50e10 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#25 0x00007f1929760689 in QApplication::exec () at kernel/qapplication.cpp:2829
#26 0x000056552abf896f in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:171
[Inferior 1 (process 9229) detached]

The reporter indicates this bug may be a duplicate of or related to bug 428585.

Possible duplicates by query: bug 449954.

Reported using DrKonqi
Comment 1 Nate Graham 2022-05-03 15:44:59 UTC
#4  0x00007f190f9c573e in TagLib::ByteVector::ByteVector (this=<optimized out>, v=..., this=<optimized out>, v=...) at ./taglib/toolkit/tbytevector.cpp:358
#5  0x00007f190f9adf16 in TagLib::ID3v2::AttachedPictureFrame::picture (this=<optimized out>) at ./taglib/mpeg/id3v2/frames/attachedpictureframe.cpp:115
#6  0x00007f18fc6050fe in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_taglibextractor.so
#7  0x00007f18fc608c1c in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kfilemetadata/kfilemetadata_taglibextractor.so
#8  0x00007f1927656997 in KFileMetaData::EmbeddedImageData::imageData (this=<optimized out>, fileUrl=..., types=..., types@entry=...) at ./src/embeddedimagedata.cpp:71
#9  0x00007f1929df29b0 in FileScanner::checkEmbeddedCoverImage (this=this@entry=0x7f19140136c8, localFileName=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h:121

Bug is either in KFileMetadata or TagLib. Moving to KFileMetadata for further triage.
Comment 2 Stefan Brüns 2023-11-12 18:32:07 UTC
It obviously crashes inside taglib itself.

Ubuntu 22.04 uses an old version of taglib (v 1.11.1), and should either update or backport relevant fixes.

Issue should be verified with a current KFileMetaData built with a current taglib (1.13.1).

In case the issue is still present, the problematic file should be provided, either as an attachment, or if there are e.g. copyright or privacy issues, some other arrangement should be made.
Comment 3 Bug Janitor Service 2023-11-27 03:45:43 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Bug Janitor Service 2023-12-12 03:46:01 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!