Purging tracks from library does not return

Bug #1671247 reported by Uwe Klotz
4
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Critical
Daniel Schürmann

Bug Description

Rescanning and purging tracks of deleted files leads into an endless loop.

Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
Debug [Main]: Committing transaction on "qt_sql_default_connection" result: true
...

Break in debugger always drops me here:
...
#8 0x000000000090281f in PlaylistDAO::changed(int) (this=this@entry=0x33089b8, _t1=<optimized out>, _t1@entry=1929)
    at lin64_build/library/dao/moc_playlistdao.cc:131
#9 0x000000000090a1b8 in PlaylistDAO::removeTrackFromPlaylist(int, TrackId const&) (this=this@entry=0x33089b8, playlistId=1929, trackId=...)
    at src/library/dao/playlistdao.cpp:443
#10 0x000000000090a718 in PlaylistDAO::removeTracksFromPlaylists(QList<TrackId> const&) (this=0x33089b8, trackIds=...) at src/library/dao/playlistdao.cpp:759
#11 0x00000000009e6295 in TrackCollection::purgeTracks(QList<TrackId> const&) (this=0x3308970, trackIds=...) at src/library/trackcollection.cpp:262
#12 0x0000000000971a0e in MissingTableModel::purgeTracks(QList<QModelIndex> const&) (this=0x602e30f0, indices=...) at src/library/missingtablemodel.cpp:67
#13 0x0000000000ce3911 in WTrackTableView::slotPurge() (this=this@entry=0x602b35f0) at src/widget/wtracktableview.cpp:534
#14 0x0000000000c76645 in WTrackTableView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x602b35f0, _c=<optimized out>, _id=3, _a=0x7fffffffcb70) at lin64_build/widget/moc_wtracktableview.cc:112
#15 0x00007ffff4cf0090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib64/libQtCore.so.4
#16 0x00007ffff56f5062 in QAction::triggered(bool) ()
    at /usr/lib64/libQtGui.so.4
#17 0x00007ffff56f63c3 in QAction::activate(QAction::ActionEvent) ()
    at /usr/lib64/libQtGui.so.4
#18 0x00007ffff5b50f5d in QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) ()
    at /usr/lib64/libQtGui.so.4
#19 0x00007ffff5b553c9 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) () at /usr/lib64/libQtGui.so.4
#20 0x00007ffff5751710 in QWidget::event(QEvent*) ()
---Type <return> to continue, or q <return> to quit---
    at /usr/lib64/libQtGui.so.4
#21 0x00007ffff5b5961b in QMenu::event(QEvent*) () at /usr/lib64/libQtGui.so.4
#22 0x00007ffff56faecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#23 0x00007ffff5703547 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib64/libQtGui.so.4
#24 0x0000000000a20f1f in MixxxApplication::notify(QObject*, QEvent*) (this=0x7fffffffdad0, target=0x602c58f0, event=<optimized out>)
    at src/mixxxapplication.cpp:159
#25 0x00007ffff4cdbeed in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#26 0x00007ffff570156b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
    at /usr/lib64/libQtGui.so.4
#27 0x00007ffff577c26d in QETWidget::translateMouseEvent(_XEvent const*) ()
    at /usr/lib64/libQtGui.so.4
#28 0x00007ffff577a99c in QApplication::x11ProcessEvent(_XEvent*) ()
    at /usr/lib64/libQtGui.so.4
#29 0x00007ffff57a3409 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/libQtGui.so.4
#30 0x00007ffff0354e52 in g_main_context_dispatch ()
    at /usr/lib64/libglib-2.0.so.0
#31 0x00007ffff03551d0 in g_main_context_iterate.isra ()
---Type <return> to continue, or q <return> to quit---
    at /usr/lib64/libglib-2.0.so.0
#32 0x00007ffff035527c in g_main_context_iteration ()
    at /usr/lib64/libglib-2.0.so.0
#33 0x00007ffff4d0c47e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#34 0x00007ffff57a35a6 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtGui.so.4
#35 0x00007ffff4cda7bf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#36 0x00007ffff4cdab25 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#37 0x00007ffff4ce0779 in QCoreApplication::exec() ()
    at /usr/lib64/libQtCore.so.4
#38 0x0000000000462ade in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at src/main.cpp:116

description: updated
summary: - Purge from library does not return
+ Purging tracks from library does not return
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Critical
assignee: nobody → Daniel Schürmann (daschuer)
milestone: none → 2.1.0
Revision history for this message
Daniel Schürmann (daschuer) wrote :
Changed in mixxx:
status: Confirmed → Fix Committed
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8829

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.