View Issue Details

IDProjectCategoryView StatusLast Update
0011766MMW v4Synchronizationpublic2014-01-21 22:18
ReporterLudek Assigned To 
PriorityimmediateSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Product Version4.1 
Target Version4.1Fixed in Version4.1 
Summary0011766: Sync MMW->MMA USB sync can fail to transfer advanced metadata on occassion
DescriptionBased on some logs from the past and it also appeared to me once that USB sync from MMW to MMA did not transfer advanced metadata (like rating).

I found that it was because the database file for MMA (mmstore.dd.synced) was not closed properly, namely -WAL (write ahead log) file was not incorporated to the database file on closing, this caused that MMA did not see the changes made by MMW (e.g. sync_operations table was missing) and thus MMA did not accepted such a db.

Here: http://www.sqlite.org/draft/wal.html#how_to_checkpoint is written that the auto-checkpoint (to commit WAL) occurs when the last database connection on a database file closes.

But as we can see this is not always true, so we should solve it by calling "PRAGMA wal_checkpoint" before commit and close of the db. Or alternativelly disable WAL by "PRAGMA journal_mode=DELETE"
TagsNo tags attached.
Fixed in build1689

Relationships

related to 0011587 closedLudek Android device can't be browsed if it's unlocked while connected 
related to 0008342 resolvedLudek Autosync fails to initiate if no changes occur within MediaMonkey during a session 

Activities

Ludek

2014-01-20 14:57

developer   ~0039304

Last edited: 2014-01-20 15:00

Further studing shown that the WAL is not the real cause, but that the DB sometimes isn't closed properly on MMW side for some reason, might be a regression related to 0011587, studing more...

Ludek

2014-01-20 15:09

developer   ~0039305

Last edited: 2014-01-20 15:15

Further testing shown that this occasionally happened, but only when using 'Send-to' -> <device>

The real cause was that it erroneously triggered device re-scan on the same MMA's DB local copy and this caused the conflict and potential close failure (if the device was still being re-scanned on sync end).

So it is regression caused by this 0008342:0038602 in build 1677.

Ludek

2014-01-20 16:11

developer   ~0039306

Fixed in build 1689.

peke

2014-01-21 22:18

developer   ~0039322

Verified 1689 and MMA 220 pro