View Issue Details

IDProjectCategoryView StatusLast Update
0014150MMW v4Synchronizationpublic2017-07-25 16:58
Reportermarek Assigned To 
PriorityimmediateSeveritymajorReproducibilityunable to reproduce
Status closedResolutionfixed 
Product Version4.1.15 
Target Version4.1.16Fixed in Version4.1.16 
Summary0014150: MMW syncs with deprecated paths over USB
DescriptionI do not have any MMW logs but I do see that mmstore.db.synced contains paths with old form of paths: /storage/9016-4EF8/ ... instead of 9016-4EF8:

The version of MMW is OK.

I do see that paths in profile settings are correct.

Ludek, could you please verify the functionality?
Additional InformationProfile settings:
<BiDirFolder>9016-4EF8:Music
<BiDirFolder>9016-4EF8:Music/Audiobooks
<BiDirFolder>9016-4EF8:Music/Classical
<BiDirFolder>9016-4EF8:Music/Podcasts

Inserted media:

id:null,type:0,title:I'll Be Here Awhile (Acoustic Version),album:null,artists:null,path:/storage/9016-4EF8/Android/data/com.ventismedia.android.mediamonkey/files/Music/311/Enlarged to Show Detail 2/06 311 - I'll Be Here Awhile (Acoustic Version).mp3,hash:null,mime:audio/mpeg,size:4984832,syncSize:null,albumArt:/storage/9016-4EF8/Android/data/com.ventismedia.android.mediamonkey/files/Music/311/Enlarged to Show Detail 2/albumart.jpg | artists:[311] | composers:[null - 311(0/0)] | genres:[Alternative,null] | album:Album: id:822,title:Enlarged to Show Detail 2,artists:null,type:0,albumart:9016-4EF8:Music/311/Enlarged to Show Detail 2/albumart.jpg | album artists:null
TagsNo tags attached.
Fixed in build1835

Relationships

related to 0013247 resolvedLudek MMW v4 Change the way how MMW process path in MMA DB 
related to 0014299 closedmarek MMA Usb sync fails when MMW is deprecated 
related to 0014309 closedLudek MMW v4 USB sync doesn't work for readonly storages 

Activities

Ludek

2017-03-28 12:10

developer   ~0047644

Last edited: 2017-03-28 12:11

MMW takes the prefix _only_ from storageInfo.xml , so there must be invalid storageInfo.xml presented on the device.
Debug log or the storageInfo.xml would show more.

marek

2017-04-04 10:36

developer   ~0047718

In build 1.3.0.686

All storageInfo.xml files are attached to log.

marek

2017-04-14 18:13

developer   ~0047791

So with new BETA release of MMA, I do have all storageInfo files.

But they are all correct:
primary:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="6d37a254.0.cb7a5754-dad1-4a1b-903a-5b14f2e8eeb8">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/9C33-6BBD</path>
    <prefix>9C33-6BBD:</prefix>
    <info>Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>0</current>
    <appFolder>/Android/data/com.ventismedia.android.mediamonkey/files</appFolder>
    <folder>Android/data/com.ventismedia.android.mediamonkey/files</folder>
  </storage>
</storages>

9C33-6BBD:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="6d37a254.1.66465b17-b0c1-4cc8-8e55-ee2d0c7f4161">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/9C33-6BBD</path>
    <prefix>9C33-6BBD:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
</storages>

9C33-6BBD:Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="6d37a254.1.66465b17-b0c1-4cc8-8e55-ee2d0c7f4161">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/9C33-6BBD</path>
    <prefix>9C33-6BBD:</prefix>
    <info>Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>1</current>
    <appFolder>/Android/data/com.ventismedia.android.mediamonkey/files</appFolder>
    <folder>Android/data/com.ventismedia.android.mediamonkey/files</folder>
  </storage>
</storages>

I do not have any user's email but here are really a lot of occurences from different devices. But I am not able to get MMW log.

Ludek

2017-04-19 10:51

developer   ~0047803

Last edited: 2017-04-19 10:54

It seems that MMW is taking the prefix from the <path> instead of <prefix> (like if version would be < 1.3). I used the storageInfo above and couldn't replicate with current MMW (4.1.15)

Couldn't it be just that the users are still using an older MMW version?
Based on 0013247 the new handling was implemented in 4.1.12.1790 , so any lower version would exhibit this issue.

marek

2017-04-24 03:56

developer   ~0047831

Yes, one half of the crashlogs are from older versions of MMW and half is from newer. We still have 5 these logs per day. But you are right and I forgot to check the MMW version when posting the note above...so it might be from older version.

I will add stronger verification to next MMA build to completely terminate USB sync if the version doesn't match to avoid this issue for older MMW. Notification about necessary update has been already displaying.

So now I have storageInfo.xml where MMW was 4.1.14.1812:
primary:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="cb32f767.0.d2219007-c1a8-471b-8b35-6adae1699754">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/307F-E4BE</path>
    <prefix>307F-E4BE:</prefix>
    <info>Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>0</current>
    <appFolder>/Android/data/com.ventismedia.android.mediamonkey/files</appFolder>
    <folder></folder>
  </storage>
</storages>

307F-E4BE:Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="cb32f767.1.d1c81530-f5f6-4b56-8e1c-0aecfa24fd94">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/307F-E4BE</path>
    <prefix>307F-E4BE:</prefix>
    <info>Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>1</current>
    <appFolder>/Android/data/com.ventismedia.android.mediamonkey/files</appFolder>
    <folder></folder>
  </storage>
</storages>

307F-E4BE:MediaMonkey/files/storageInfo.xml.mmw

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.2" storageGuid="cb32f767.1.d1c81530-f5f6-4b56-8e1c-0aecfa24fd94">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <uid>primary</uid>
    <info>/storage/emulated/0/MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/3561-3134</path>
    <uid>3561-3134</uid>
    <info>/storage/3561-3134/Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>1</current>
    <appFolder>/storage/3561-3134/Android/data/com.ventismedia.android.mediamonkey/files/</appFolder>
    <folder>/storage/3561-3134/</folder>
  </storage>
</storages>

307F-E4BE:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="cb32f767.1.d1c81530-f5f6-4b56-8e1c-0aecfa24fd94">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/307F-E4BE</path>
    <prefix>307F-E4BE:</prefix>
    <info>Android/data/com.ventismedia.android.mediamonkey/files/files/storageInfo.xml</info>
    <type>read-write limited</type>
    <current>1</current>
    <appFolder>/Android/data/com.ventismedia.android.mediamonkey/files</appFolder>
    <folder></folder>
  </storage>
</storages>

So storageInfo.xml.mmw is problematic because it is still version 1.2. MMW prefers reading from .xml.mmw files? MMA doesn't write to them so that might be that cause.

marek

2017-04-24 04:16

developer   ~0047832

And this is another similar case:
primary:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="9888d9483930553836.0.c579bc6b-b986-4548-a672-74442807f555">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/5FDA-651E</path>
    <prefix>5FDA-651E:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
</storages>

5FDA-651E:MediaMonkey/files/storageInfo.xml.mmw

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><storages version="1.0" storageGuid="9c29b2cf-31d5-447f-a770-a2d71daa0716.1.5f6392d4-eba2-4103-ac6a-c1d112533f7d"></storages>

5FDA-651E:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="9c29b2cf-31d5-447f-a770-a2d71daa0716.1.5f6392d4-eba2-4103-ac6a-c1d112533f7d">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>0</current>
  </storage>
  <storage>
    <title>SD card</title>
    <path>/storage/5FDA-651E</path>
    <prefix>5FDA-651E:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
</storages>

marek

2017-04-24 04:22

developer   ~0047833

Last edited: 2017-04-24 04:31

It occurs on Nexus devices (have seen on Nexus 7 and Nexus 5X) with MMW 4.1.15.1830 where the storageInfo.xml looks fine.

primary:MediaMonkey/files/storageInfo.xml

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<storages version="1.3" storageGuid="8ae1c92d-d819-44cf-974d-08d52d6dc6c7.0.a06d5538-f6ac-4925-95b4-1ef843693fe8">
  <storage>
    <title>Internal storage</title>
    <path>/storage/emulated/0</path>
    <prefix>primary:</prefix>
    <info>MediaMonkey/files/storageInfo.xml</info>
    <type>read-write</type>
    <current>1</current>
  </storage>
</storages>

Ludek

2017-04-24 12:31

developer   ~0047836

Last edited: 2017-04-25 11:01

MMW takes the MMW version (storageInfo.xml.mmw) only if the MMA's version (storageInfo.xml) cannot be downloaded from _any_ location.

Once it downloads the MMA's version then it immediately updates also the MMW version (based on the newest MMA version).

So it looks that there is a MTP issue again and MMW simply cannot download any MMA version. MMW log would confirm it.

Another idea I could think of is that MMW could somehow fail to pair the Phone and SD card memories (thinking that it is not from the same phone). But this wouldn't be the case for Nexus device that has only Phone memory.

MMW log would definetely shed some light on it. Maybe you could add the same request for MMW log like in case of the HTTP 202 error in the past?

But I am afraid that it is most probably just the MTP refresh issue nearly after MMA 1.2 > MMA 1.3 update where (nearly after upgrade) the storageInfo.xml seen over USB isn't the actual storageInfo.xml in Android or is inaccessible from Windows?

marek

2017-04-26 06:58

developer   ~0047857

MMA 1.3.0.697 is now backward compatible with old path too.

What will occur when MMW reads XML in version 1.2 and MMA DB contains paths in new form (document ids)? This might be workarounded on MMW side.

Ludek

2017-05-04 18:24

developer   ~0047915

Last edited: 2017-05-04 19:09

Yes, this could be probably workarounded on MMW side too ('/storage/emulated/0' auto-exchanging for 'primary:' and the SD card's auto-exchanging) \.

Assigned to me to add the workaround to MMW (note that we have already added similar workaround 0013283 that informs user when MMW has trouble getting the storageInfo.xml file and doesn't show the profile in MMW at all -- to prevent from duplicate profile creation). Not sure why this workaround did not work for the users, MMW log would be useful anyway.

Ludek

2017-05-04 21:57

developer   ~0047917

The workaround implemented in build 4.1.16.1835 and merged to 5.0.0.2066

Test note: To test the workaround you can edit storageInfo.xml and change version attribute from "1.3" to "1.2" -- this will force MMW to extract the prefix in the old form.

peke

2017-05-12 15:03

developer   ~0047969

Verified 1835