Bug 430655 - Elisa crashes in TrackMetadataModel::fillDataFromTrackData() on startup
Summary: Elisa crashes in TrackMetadataModel::fillDataFromTrackData() on startup
Status: REPORTED
Alias: None
Product: Elisa
Classification: Applications
Component: general (show other bugs)
Version: 20.12.0
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: Matthieu Gallien
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-12-21 08:40 UTC by pat_h
Modified: 2021-01-04 21:47 UTC (History)
2 users (show)

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


Attachments
Crash log from KDE. (15.01 KB, text/plain)
2021-01-02 22:29 UTC, Hutson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pat_h 2020-12-21 08:40:48 UTC
Application: elisa (20.12.0)

Qt Version: 5.15.2
Frameworks Version: 5.74.0
Operating System: Linux 5.9.0-4-amd64 x86_64
Windowing system: X11
Distribution: Debian GNU/Linux bullseye/sid

-- Information about the crash:
- What I was doing when the application crashed:
Starting Elisa -> crash after maximum 5 seconds

I think this error occured first with version 20.12.0. I don't think this error occured with a previous version (20.08.2 being the latest tested one). Due to the strack tracke, it might, of course, also be related to a Qt upgrade. I'll go testing when time permits, but wanted to send the stack trace as is, because even if I find a working combination as a workaround _some_ users are affected (and I might lack the motivation to revert my workaround when it's working again).

- Unusual behavior I noticed:
The bug seems to be reproducible, but with one exception: When starting elisa with strace, no crash occurs (at least not after the first minute or so – I aborted it then, as reading through all the collection might take hours with strace enabled)

The crash can be reproduced every time.

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

[KCrash Handler]
#4  QVariant::~QVariant (this=0x1000100010022, __in_chrg=<optimized out>) at kernel/qvariant.cpp:1827
#5  0x00007ff7ab6ddff6 in QMapNodeBase::callDestructorIfNecessary<QVariant> (t=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:100
#6  QMapNode<DataTypes::ColumnsRoles, QVariant>::destroySubTree (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:125
#7  0x00007ff7ab6de277 in QMapNode<DataTypes::ColumnsRoles, QVariant>::doDestroySubTree (this=0x7ff7600008d0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:137
#8  QMapNode<DataTypes::ColumnsRoles, QVariant>::destroySubTree (this=0x7ff7600008d0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:126
#9  QMapNode<DataTypes::ColumnsRoles, QVariant>::doDestroySubTree (this=0x7ff764005020) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:137
#10 QMapNode<DataTypes::ColumnsRoles, QVariant>::destroySubTree (this=0x7ff764005020) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:126
#11 QMapNode<DataTypes::ColumnsRoles, QVariant>::doDestroySubTree (this=0x555e7bac2ae0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:137
#12 QMapNode<DataTypes::ColumnsRoles, QVariant>::destroySubTree (this=0x555e7bac2ae0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:126
#13 QMapData<DataTypes::ColumnsRoles, QVariant>::destroy (this=0x555e7bae83b0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:245
#14 0x00007ff7ab76a7a8 in QMap<DataTypes::ColumnsRoles, QVariant>::~QMap (this=0x7ffc476f2a20, __in_chrg=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:334
#15 QMap<DataTypes::ColumnsRoles, QVariant>::operator= (other=..., this=0x555e79d94f00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:643
#16 QMap<DataTypes::ColumnsRoles, QVariant>::operator= (other=..., this=0x555e79d94f00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:640
#17 DataTypes::MusicDataType::operator= (this=0x555e79d94f00) at ./src/datatypes.h:83
#18 DataTypes::TrackDataType::operator= (this=0x555e79d94f00) at ./src/datatypes.h:109
#19 TrackMetadataModel::fillDataFromTrackData (this=0x555e79d94ef0, trackData=..., fieldsForTrack=...) at ./src/models/trackmetadatamodel.cpp:289
#20 0x00007ff7ab76b5c3 in TrackMetadataModel::radioData (this=0x555e79d94ef0, radiosData=...) at ./src/models/trackmetadatamodel.cpp:661
#21 0x00007ff7aa0e6f51 in QObject::event (this=0x555e79d94ef0, e=0x7ff74c34a590) at kernel/qobject.cpp:1314
#22 0x00007ff7ab0bf15f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555e79d94ef0, e=0x7ff74c34a590) at kernel/qapplication.cpp:3632
#23 0x00007ff7aa0baf2a in QCoreApplication::notifyInternal2 (receiver=0x555e79d94ef0, event=0x7ff74c34a590) at kernel/qcoreapplication.cpp:1063
#24 0x00007ff7aa0bd961 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555e79c310c0) at kernel/qcoreapplication.cpp:1817
#25 0x00007ff7aa112df3 in postEventSourceDispatch (s=0x555e79cff1f0) at kernel/qeventdispatcher_glib.cpp:277
#26 0x00007ff7a7dbabdb in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ff7a7dbae88 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ff7a7dbaf3f in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ff7aa11247f in QEventDispatcherGlib::processEvents (this=0x555e79d04df0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007ff7aa0b98eb in QEventLoop::exec (this=this@entry=0x7ffc476f2ea0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#31 0x00007ff7aa0c1b60 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#32 0x0000555e789e51e4 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:165
[Inferior 1 (process 62516) detached]

Possible duplicates by query: bug 276586.

Reported using DrKonqi
Comment 1 pat_h 2020-12-21 08:51:06 UTC
I can confirm that downgrading to 20.08.2 solves the issue for me.

So

elisa: 20.08.2
Qt Version: 5.15.2
Frameworks Version: 5.74.0

seems to be a working combination, whereas

elisa: 20.12.0
Qt Version: 5.15.2
Frameworks Version: 5.74.0

seems not be one (at least on my computer).

Kind regards
Patrick
Comment 2 pat_h 2020-12-28 06:28:16 UTC
I can confirm that

elisa: 20.12.0
Qt Version: 5.15.2
Frameworks Version: 5.77.0

is a working combination, too.

This seems to be a case, where Debian testing contained an unfortunate combination of package versions. As this is resolved, now, it would be fine for me to close this bug report, however, as I lack the overview which combinations other distros use, the developers should judge if they want to close it or if they want to implement compatibility with frameworks 5.77.0 into 20.12.1.

Kind regards
Patrick
Comment 3 Hutson 2021-01-02 22:29:13 UTC
Created attachment 134489 [details]
Crash log from KDE.

A recent update of my Kubuntu system has led to Elisa crashing on startup.

OS: Kubuntu 20.04
elisa: 19.12.3-1
Qt Version: 5.12.8
Frameworks Version: 5.68.0

Crash information attached.
Comment 4 Nate Graham 2021-01-04 21:47:14 UTC
#15 QMap<DataTypes::ColumnsRoles, QVariant>::operator= (other=..., this=0x555e79d94f00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:643
#16 QMap<DataTypes::ColumnsRoles, QVariant>::operator= (other=..., this=0x555e79d94f00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:640
#17 DataTypes::MusicDataType::operator= (this=0x555e79d94f00) at ./src/datatypes.h:83
#18 DataTypes::TrackDataType::operator= (this=0x555e79d94f00) at ./src/datatypes.h:109
#19 TrackMetadataModel::fillDataFromTrackData (this=0x555e79d94ef0, trackData=..., fieldsForTrack=...) at ./src/models/trackmetadatamodel.cpp:289
#20 0x00007ff7ab76b5c3 in TrackMetadataModel::radioData (this=0x555e79d94ef0, radiosData=...) at ./src/models/trackmetadatamodel.cpp:661