View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0013130 | MMA | Synchronization | public | 2016-02-16 16:56 | 2016-04-04 15:08 |
Reporter | marek | Assigned To | |||
Priority | high | Severity | minor | Reproducibility | sometimes |
Status | resolved | Resolution | fixed | ||
Product Version | 1.1.2 | ||||
Target Version | 1.2.0 | Fixed in Version | 1.2.0 | ||
Summary | 0013130: Duplicate profiles can occur due to deletion of storageInfo.xml [MMA] | ||||
Description | In case of write limited storage, MMA can write only to application folder where it creates the storageInfo.xml. This folder is deleted on uninstall and storageInfo.xml is lost. So duplicate profiles are created. It can also cause DB update issue 0013063. This is not fixable for write limited storages in Kitkat devices. But it can be fixed in Lolipop and higher devices where MMA can create duplicate of storageInfo.xml to /MediaMonkey/files folder. This folder is not deleted on uninstall. | ||||
Tags | No tags attached. | ||||
Fixed in build | 589 | ||||
related to | 0013119 | closed | Ludek | MMW v4 | Duplicate profiles can occur due to deletion of storageInfo.xml |
related to | 0013063 | resolved | marek | MMA | LG L-65: Storage prefixes for SD card don't match |
has duplicate | 0013129 | resolved | marek | MMA | Crash on Marshmallow devices after initial config of SAF |
has duplicate | 0013193 | resolved | marek | MMA | Playlists: get lost on playlists edit |
|
It was partly fixed in 1.1.3.451 There are still issues in Android 6.0 where the getOutputStream method fails due to unreliable exists() method. It has to be retested to find the workaround. |
|
I have implemented fix for 1.2.0 The exists() method was simplified and only standard File.exists() method is used (i.e. we do not use exists() method from SAF api that is not reliable). This is quite reliable with one exception - the File.exists() return true right after the file is deleted with SAF api. The delete method is not blocking and this is the cause. But deletion was not necessary when we write new data to file. So I have removed the deletions and now it looks like working. I have also fixed one regression that storageInfo.xml was always overwritten even if the data was not changed. This is fixed to speed up the process. Fixed in build 1.2.0.580 |
|
Verified 585 Finally fixed and working correctly. |
|
I have found the root cause that our exists() method uses count() SQLite function that doesn't work on every device/API. Fixed in build 589 |