-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modified track info is lost on a crash #7839
Comments
Commented by: daschuer This probably not that trivial. We want to be reliable as much as possible, but reduce the DB HD access to a minimum since it is driven from the GU thread and may block user input for a moment. |
Commented by: ferranpujolcamins I would like to fix this bug. What is the state of the library concurrency refactoring? Once that is solved, is it ok to just push the changes to the database as soon as they happen? |
Commented by: daschuer you can follow the progress here: #629 You may fix this bug by directly call the database assuming it will be done asynchrone in a Database thread. |
Commented by: ferranpujolcamins I've forked MK-42's branch and track info modifications are not stored on a normal mixxx restart. I'll just make a PR from master. |
Commented by: ferranpujolcamins I'd need a hand here. I guess I should add a new method to TrackDAO that commits the pending changes to the database. Would this lead to concurrency problems? I'm have no experience in concurrent code so I don't have a clue here. Would it be reasonable to call this each time a change to the database is made? |
Commented by: daschuer The track is saved just before the destructor of the TrackInfo Object is called. mixxx/src/library/dao/trackdao.cpp Line 53 in e94a1a0
Weak cache that controls that we have only one instance of a single track in Mixxx. If a track is not referenced, it is saved. During the solution of the bug, you may watch the size of the weak cache. We need to be sure, that it is at a reasonable size at any moment. If it is to high, we have a pending reference of an unused track, that prevents the track to be saved. We may also discuss the sense of the strong cache. What is the benefit of it. If we just remove it any track is saved once it is not used. Is there a reason in the normal Mixxx workflow, that a track is used unused and used again short after? |
Reported by: ferranpujolcamins
Date: 2015-01-31T09:43:57Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp1416636
How to reproduce:
-Open Mixxx from command line
-Modify a track title for example
-Send Mixxx SIGINT
-Open Mixxx again: track changes are lost
Mixxx should save tracks to database as soon as they are changed or in a reasonable short time after.
The text was updated successfully, but these errors were encountered: