Purging tracks from library does not return

Bug #1671247 reported by Uwe Klotz on 2017-03-08
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
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

Uwe Klotz (uklotzde) on 2017-03-08
description: updated
Uwe Klotz (uklotzde) on 2017-03-08
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
Daniel Schürmann (daschuer) wrote :
Changed in mixxx:
status: Confirmed → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers