UI freezes when applying actions on multiple/many tracks

Bug #1547916 reported by Sébastien BLAISOT
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
Unassigned

Bug Description

I just discovered a bug in Mixxx 2.0.0 (64 bits on win 10 64b).

If you select a (rather) large number of tracks in the library, open right-click menu and select BPM->Reset tempo and beatgrid, the interface freezes until mixxx has finish resetting tempo and beatgrid on all these tracks.

I've just seen that with 1000 tracks selected.

This should probably be done in another low-priority thread.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

https://github.com/mixxxdj/mixxx/pull/1624

I'll keep this bug and not mark it as a duplicate, because this one actually describes one of the issues with the current analysis architecture. Unrelated to multi-threading.

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
importance: Undecided → High
status: New → In Progress
milestone: none → 2.2.0
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Sorry, Sebastien, that I didn't notice this earlier!

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

This is not a duplicate, but a known issue! In fact the new issue recently reported by Sean is a duplicate of this issue:

https://bugs.launchpad.net/mixxx/+bug/1765528

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

We don't need a separate worker thread. I already have an idea in my mind how such a reactive, event-loop-driven TrackActionScheduler can be implemented efficiently:
- shared queue of pending track ids
- queue of pending actions: action functor working on a single TrackPointer, number of total tracks, number of finished tracks

Some parts of the new TrackAnalysisScheduler might be reusable.

summary: - interface freeze on "reset tempo and beatgrid"
+ UI freezes when applying actions on multiple/many tracks
tags: added: metadata
tags: added: gui
tags: added: library
Be (be.ing)
Changed in mixxx:
milestone: 2.2.0 → 2.3.0
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Unassigning myself, because I don't plan any major changes on the current software design of the UI. Even the mentioned reactive and multi-threaded redesign of the analysis has not been merged, yet.

Instead we should think about decoupling the backend from the frontend and eventually replace the frontend with QML components.

Changed in mixxx:
milestone: 2.3.0 → none
assignee: Uwe Klotz (uklotzde) → nobody
status: In Progress → Confirmed
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Proof of concept using a modal progress dialog that can be aborted:

https://github.com/mixxxdj/mixxx/pull/2656

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
milestone: none → 2.4.0
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

The workaround is in place. Further improvements would require substantial changes to the architecture.

Changed in mixxx:
milestone: 2.4.0 → 2.3.0
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/8480

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.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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