Closed
Bug 1142450
Opened 10 years ago
Closed 9 years ago
[Flame][MTP]The device will automatically switch to UMS from MTP.
Categories
(Firefox OS Graveyard :: Gaia::Settings, defect)
Tracking
(blocking-b2g:2.5+, b2g-v2.1 unaffected, b2g-v2.2 affected, b2g-master affected)
Tracking | Status | |
---|---|---|
b2g-v2.1 | --- | unaffected |
b2g-v2.2 | --- | affected |
b2g-master | --- | affected |
People
(Reporter: fan.luo, Assigned: edenchuang)
References
Details
(Keywords: regression, Whiteboard: [2.2-nexus-5-l])
Attachments
(4 files)
[1.Description]:
[Flame][v2.2][MTP]The device will automatically switch to UMS from MTP. And MTP is still checked in device.
Attached: Video.mp4 and logcat.txt
Found at: 1:43am.
[2.Testing Steps]:
1. Launch Settings
2. Tap USB Storage
3. Check MTP
4. Enable USB Storage
5. Do some other operations or let device stay idle.
[3.Expected Result]:
5. Device works normally and storage is still in MTP.
[4.Actual Result]:
5. Device will switch to UMS automatically.
[5.Reproduction build]:
Woodduck 2.0M(Unaffect):
Build ID 20150312050313
Gaia Revision 0e0a84a03f7253d1544e6e8ecbadac9d0f325a64
Gaia Date 2015-03-11 05:43:46
Gecko Revision 4dd211ecc070564dea1af8fc5125cfc748f24a23
Gecko Version 32.0
Device Name jrdhz72_w_ff
Firmware(Release) 4.4.2
Firmware(Incremental) 1426107908
Firmware Date Thu Mar 12 05:05:26 CST 2015
------------------
Flame 2.0(Unaffect):
Build ID 20150311000206
Gaia Revision 896803174633fc6acd3fd105f81c349b8e9b9633
Gaia Date 2015-03-10 06:32:26
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g32_v2_0/rev/78df3174fb10
Gecko Version 32.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150311.034723
Firmware Date Wed Mar 11 03:47:34 EDT 2015
Bootloader L1TC000118D0
------------------
Flame 2.1(Unaffect):
Build ID 20150311001232
Gaia Revision 04623ffbdc1e9c53de5a9a522bc9d8d93020a56d
Gaia Date 2015-03-10 18:12:15
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/421ee858039c
Gecko Version 34.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150311.040426
Firmware Date Wed Mar 11 04:04:37 EDT 2015
Bootloader L1TC000118D0
------------------
Flame 2.1s_256mb(Unaffect):
Build ID 20150311001238
Gaia Revision a66813e488374b8ba9d8aa187b00f84ad5bd1bb9
Gaia Date 2015-03-10 06:56:29
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g34_v2_1s/rev/ee8a2d1b86a5
Gecko Version 34.0
Device Name scx15_sp7715ga
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150311.040335
Firmware Date Wed Mar 11 04:03:48 EDT 2015
------------------
Flame 2.2(Affect):
Build ID 20150311002522
Gaia Revision 3f032238a52f08e4c2f68a47ad065a96eb22d470
Gaia Date 2015-03-11 00:28:07
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/004fa1cb1dd4
Gecko Version 37.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150311.040546
Firmware Date Wed Mar 11 04:05:57 EDT 2015
Bootloader L1TC000118D0
----------------
N5_2.2(Unaffect):
Build ID 20150311002522
Gaia Revision 3f032238a52f08e4c2f68a47ad065a96eb22d470
Gaia Date 2015-03-11 00:28:07
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/004fa1cb1dd4
Gecko Version 37.0
Device Name hammerhead
Firmware(Release) 5.0
Firmware(Incremental) eng.cltbld.20150311.040337
Firmware Date Wed Mar 11 04:03:52 EDT 2015
Bootloader HHZ12d
----------------
Flame 3.0(Unaffect):
Build ID 20150311010231
Gaia Revision 943c8b4039f59b08ba100390e164a076a20c892e
Gaia Date 2015-03-10 20:35:07
Gecko Revision https://hg.mozilla.org/mozilla-central/rev/fd8e079d6335
Gecko Version
[6.Reproduction Frequency]:
Seldom Recurrence,2/10
[7.TCID]:
14299
Reporter | ||
Updated•10 years ago
|
status-b2g-v2.0:
--- → unaffected
status-b2g-v2.0M:
--- → unaffected
status-b2g-v2.1:
--- → unaffected
status-b2g-v2.1S:
--- → unaffected
status-b2g-v2.2:
--- → affected
status-b2g-master:
--- → unaffected
Reporter | ||
Comment 1•10 years ago
|
||
Comment 2•10 years ago
|
||
Hi Alison, Could you take a look at this, thank you.
Flags: needinfo?(ashiue)
Comment 3•10 years ago
|
||
Unfortunately, I could not reproduce this problem.
Could you please keep monitor if this issue still occur at recently build?
Flags: needinfo?(ashiue)
Reporter | ||
Comment 4•9 years ago
|
||
Hi Alison,
Sorry for so late reply.
Now I can 100% repro this bug with below STR.
1. Launch Settings
2. Enable USB Storage
3. Tap USB storage and check MTP
4. Lock screen
5. Unlock screen.
Actual result: the MTP mode in PC will change to UMS automatically.
See attachment: VIDEO0602.3gp, logcat_2011.txt
Found at: 20:11
Rate: 100%
I also check the flame v2.1, found it is a regression bug since the flame v2.1 is unaffected.
Flame v2.1(Unaffected)
Build ID 20150628001204
Gaia Revision f8b848c82d1ed589f7a1eb5cc099830c867ff1d4
Gaia Date 2015-06-08 09:48:23
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/d3e432c4546a
Gecko Version 34.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150628.033856
Firmware Date Sun Jun 28 03:39:07 EDT 2015
Bootloader L1TC000118D0
Flame v2.2(Affected):
Build ID 20150628002505
Gaia Revision 0179935627012dfde3ca036c9a71035be463b7ad
Gaia Date 2015-06-26 21:13:44
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/35e09270da3a
Gecko Version 37.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150628.035537
Firmware Date Sun Jun 28 03:55:48 EDT 2015
Bootloader L1TC000118D0
Flame v3.0(Affected):
Build ID 20150629134017
Gaia Revision 27fe0f4261e3685187769411f2f74cff19287b19
Gaia Date 2015-06-29 14:29:00
Gecko Revision https://hg.mozilla.org/mozilla-central/rev/c26dbd63604d
Gecko Version 42.0a1
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150629.170951
Firmware Date Mon Jun 29 17:10:03 EDT 2015
Bootloader L1TC000118D0
N5 v2.2(Affected):
Build ID 20150626162505
Gaia Revision 0179935627012dfde3ca036c9a71035be463b7ad
Gaia Date 2015-06-26 21:13:44
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/330f52ef6a2d
Gecko Version 37.0
Device Name hammerhead
Firmware(Release) 5.1
Firmware(Incremental) eng.cltbld.20150626.195122
Firmware Date Fri Jun 26 19:51:42 EDT 2015
Bootloader HHZ12f
N5 v3.0(Affected):
Build ID 20150628160206
Gaia Revision 8a1e4ae522c121c5cacd39b20a5386ec9055db82
Gaia Date 2015-06-25 21:58:25
Gecko Revision https://hg.mozilla.org/mozilla-central/rev/eaf4f9b45117
Gecko Version 41.0a1
Device Name hammerhead
Firmware(Release) 5.1
Firmware(Incremental) eng.cltbld.20150628.192615
Firmware Date Sun Jun 28 19:26:32 EDT 2015
Bootloader HHZ12f
Reporter | ||
Comment 5•9 years ago
|
||
Flags: needinfo?(ashiue)
Reporter | ||
Comment 6•9 years ago
|
||
NI Hermes to let him know this bug.
Severity: normal → major
status-b2g-v2.0:
unaffected → ---
status-b2g-v2.0M:
unaffected → ---
status-b2g-v2.1S:
unaffected → ---
Flags: needinfo?(hcheng)
Keywords: regression
Whiteboard: [2.2-nexus-5-l]
Reporter | ||
Comment 7•9 years ago
|
||
Make a supplementary for comment 4: in Nexus 5 v2.2 and Nexus 5 v3.0, the actual result is MTP mode in PC will disappear, and UMS disk will not appear.
Comment 8•9 years ago
|
||
Update the 100% reproduce steps:
1. Toggle USB storage in Settings (ex, default is UMS)
2. Go inside USB storage to select another protocol (ex, MTP)
3. Lock screen and unlock screen
4. The protocol would change to another one(ex, UMS)
Flags: needinfo?(ashiue)
Comment 9•9 years ago
|
||
Nominate to block 2.2 since this is a serious function issue.
blocking-b2g: --- → 2.2?
QA Whiteboard: [COM=MTP/UMS]
Component: Gaia::Settings → MTP/UMS
Reporter | ||
Comment 10•9 years ago
|
||
I find that both the oldest flame v2.1&flame v2.2 build can also repro this bug, while the bug can't be repro on flame v2.1 latest build. So I do the regression window on v2.1 nightly build to find out which patch fixed the bug on v2.1
Nightly Regression Window:
Last Broken
Device: Flame v2.1
Gaia-Rev 234ec27050481f4787f1f4750ec26f62ce5cc2c0
Gecko-Rev https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/103ca3fdec47
Build-ID 20150124001230
Version 34.0
Device-Name flame
FW-Release 4.4.2
FW-Incremental eng.cltbld.20150124.194942
FW-Date Sat Jan 24 19:49:53 EST 2015
Bootloader L1TC000118D0
First Working
Device: Flame v2.1
Gaia-Rev 54d92cc0755e5102223276ab23063b5eee74b514
Gecko-Rev https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/522d6c980917
Build-ID 20150124161204
Version 34.0
Device-Name flame
FW-Release 4.4.2
FW-Incremental eng.cltbld.20150124.194942
FW-Date Sat Jan 24 19:49:53 EST 2015
Bootloader L1TC000118D0
Last Broken gaia+First Working gecko: Issue DOES reproduce
Gaia:234ec27050481f4787f1f4750ec26f62ce5cc2c0
Gecko:522d6c980917
Last Broken gecko+First Working gaia: Issue DOES NOT reproduce
Gaia:54d92cc0755e5102223276ab23063b5eee74b514
Gecko:103ca3fdec47
Gaia pushlog: https://github.com/mozilla-b2g/gaia/compare/234ec27050481f4787f1f4750ec26f62ce5cc2c0...54d92cc0755e5102223276ab23063b5eee74b514
It seems that bug 1111725 fixed this bug on flame v2.1
QA Whiteboard: [COM=MTP/UMS] → [COM=MTP/UMS][MGSEI-Triage+]
Assignee | ||
Comment 11•9 years ago
|
||
I found that before executing unlock screen, the protocol keeps the original protocol and can work normally on PC side(through MTP or UMS).
Following is the related log according to the steps of comment 8
After toggle USB storage in Settings
1798 07-03 05:56:47.250 2812 2835 I AutoMounter: Changing mode from 'Disable' to 'Enable-UMS'
After switch protocol to MTP
4657 07-03 05:56:57.980 2812 2835 I AutoMounter: Changing mode from 'Enable-UMS' to 'Enable-MTP'
...
5426 07-03 05:56:58.290 2812 2835 I MozMtp : Init: Opened '/dev/mtp_usb' fd 116
5427 07-03 05:56:58.290 2812 2835 I MozMtp : MozMtpStorage: Storage constructed for Volume sdcard mStorageID 0x00010001
5428 07-03 05:56:58.290 2812 2835 I MozMtp : Notify: Volume sdcard mStorageID 0x00010001 state changed to Mounted SharingEn abled: 1
5429 07-03 05:56:58.290 2812 2835 I MozMtp : StorageAvailable: Adding Volume sdcard mStorageID 0x00010001 mountPoint /stora ge/sdcard to MozMtpDatabase
5430 07-03 05:56:58.300 2812 2835 I MozMtp : AddStorage: added 8 items from tree '/storage/sdcard'
5431 07-03 05:56:58.300 2812 2835 I MozMtp : StorageAvailable: Adding Volume sdcard mStorageID 0x00010001 mountPoint /stora ge/sdcard to MtpServer
5432 07-03 05:56:58.300 2812 2835 I MozMtp : Notify: Volume sdcard mStorageID 0x00010001 state changed to Mounted SharingEn abled: 1
5433 07-03 05:56:58.300 2812 2835 I MozMtp : MozMtpStorage: Storage constructed for Volume sdcard1 mStorageID 0x00020001
5434 07-03 05:56:58.300 2812 2835 I MozMtp : Notify: Volume sdcard1 mStorageID 0x00020001 state changed to NoMedia SharingE nabled: 1
5435 07-03 05:56:58.300 2812 2835 I MozMtp : Notify: Volume sdcard1 mStorageID 0x00020001 state changed to NoMedia SharingE nabled: 1
After lock screen
6512 07-03 05:57:07.630 2812 2835 I AutoMounter: Changing mode from 'Enable-MTP' to 'DisableWhenUnplugged'
After unlock screen
9203 07-03 05:57:13.980 2812 2835 I AutoMounter: Changing mode from 'DisableWhenUnplugged' to 'Enable-UMS'
9204 07-03 05:57:13.980 2812 2835 I AutoMounter: Stopping MtpServer
9205 07-03 05:57:13.980 2812 2835 I MozMtp : ~MozMtpStorage: Storage destructed for Volume sdcard mStorageID 0x00010001
9206 07-03 05:57:13.980 2812 2835 I MozMtp : StorageUnavailable: Removing mStorageID 0x00010001 from MtpServer
9207 07-03 05:57:13.980 2812 2835 I MozMtp : StorageUnavailable: Removing mStorageID 0x00010001 from MozMtpDatabse
9208 07-03 05:57:13.980 2812 2835 I MozMtp : ~MozMtpStorage: Storage destructed for Volume sdcard1 mStorageID 0x00020001
9209 07-03 05:57:13.980 2812 2835 I AutoMounter: SetUsbFunction(mass_storage) sys.usb.config from 'mtp,adb' to 'diag,serial_ smd,serial_tty,rmnet_bam,mass_storage,adb'
9210 07-03 05:57:13.980 2812 5046 I MozMtp : sessionEnded:
9211 07-03 05:57:13.980 2812 5046 I MozMtp : Run: MozMtpServer finished
According to the line 9203, AutoMounter receives the change mode request from Settings change observer, then read Settings key and get the value "Enable-UMS", so the protocol is changed to UMS. However, the key value should not be "Enalble-UMS". I will trace related code to check what's going on.
BTW, opposite situation also has the same problem.
1. Go inside USB storage to select another protocol (ex, MTP)
2. Toggle USB storage in Settings
3. Go inside USB storage to select another protocol (ex. UMS)
4. Lock screen and unlock screen
5. The protocol would change to another one(ex, MTP)
Assignee | ||
Comment 12•9 years ago
|
||
Hello Fred
It seems that restoring wrong usb mode value from settings app while unlocking the screen.
Could you help me to check the usb mode value saved in settings app during the whole progress?
Thanks.
Flags: needinfo?(gasolin)
Comment 13•9 years ago
|
||
dave could you help check it?
Flags: needinfo?(gasolin) → needinfo?(dhylands)
Assignee | ||
Comment 14•9 years ago
|
||
according to usb_storage.js source code, when lock/unlock screen, _updateMode() will be called and the _protocol value will be used to restore the USB storage protocol. However, the _protocol value is only saved while usb storage switch is changed.
1. Toggle USB storage in Settings (ex, default is UMS)
In this step, the _protocol is saved as UMS.
2. Go inside USB storage to select another protocol (ex, MTP)
The _protocol value should be changed to MTP, but it doesn't.
3. Lock screen and unlock screen
When unlock screen, usb storage protocol is restored with the _protocol value (here is UMS)
4. The protocol would change to another one(ex, UMS)
That's the reason why the usb storage mode changed back to UMS while unlock screen.
I think the _protocol value should be saved while the protocol changed, not when the usb storage switch changed.
Flags: needinfo?(dhylands)
Comment 15•9 years ago
|
||
The AutoMounter does switch to UMS mode (for technical reasons) but that should only happen when the USB cable is unplugged.
When in UMS mode, what's important is whether a volume is shared with the PC or not.
When MTP is enabled, then the AutoMounter mode should be changing like the following:
1 - Phone is unplugged - AutoMounter should be in UMS mode
2 - Phone is plugged in but has never been unlocked - AutoMounter should be in UMS mode
3 - Phone is plugged in and has been unlocked at least once - AutoMounter should be in MTP mode
4 - When the phone is unplugged or USB Sharing is disabled, then the AutoMounter will switch back to UMS mode.
For both UMS and MTP, nothing should be shared with the PC until the phone is unlocked for the first time. Once something is shared with the PC, then it should stay shared with the PC even if the phone is locked, until USB sharing is explicitly disabled, or the phone is unplugged from the PC.
So there are really 3 modes that the AutoMounter has:
1 - In UMS mode and no volumes are being shared with the PC
2 - In UMS mode and volumes are being shared with the PC
3 - In MTP mode and volumes are being shared with the PC
MTP doesn't have a notion of being in MTP mode and not sharing volumes (well, I suppose we could have the MTP server running awith no volumes). When I wrote it I decided to instead switch to UMS mode and have no volumes shared - this allows us to reclaim all of the memory used by the MTP server.
If the phone was in MTP mode with no volumes being shared, then it would still show up as a device to the PC, and it would look like there were no volumes, which I thought would be confusing to the user.
I just thought I'd write this out so that you have some context when trying to read the logs.
Comment 16•9 years ago
|
||
Something else I noticed that may be relevant.
With some phones, once you've shared volumes with the PC, you need to physically unplug the cable before UMS mode is well and truly off.
If used to be that when you disabled USB Sharing, you would see a message in the settings app about needing to unplug the phone before USB Sharing was truly disabled. I seem to recall that that I don't see that message anymore.
I also think that switching from UMS to MTP mode should be grayed out while USB Sharing is enabled. i.e. to switch between UMS and MTP you should first disable USB Sharing, and then once its been fully disabled (including the cable unplug for disabling UMS) then the controls would become ungrayed.
Otherwise, I think that the state machine to track this becomes very complicated and the user would be unable to discern what mode the phone is actually in.
Comment 17•9 years ago
|
||
So the crux of my previous comments is that I don't think that the SW deals with changing modes between UMS and MTP while USB Sharing is enabled.
Assignee | ||
Comment 18•9 years ago
|
||
Hello Harly
According to comment 16, could you give some comment about this behavior change?
Or could you help to transfer this to the correct person to comment it?
Thanks.
Flags: needinfo?(hhsu)
Comment 19•9 years ago
|
||
add comment 15 to https://wiki.mozilla.org/Gaia/System/FileManagement so we could have some central reference there. Thanks dave.
Comment 20•9 years ago
|
||
I think this is covered in bug 922927, if you take a look at page 11 in the spec "[2.1 Settings] MTP_SD card v1.3.pdf". A dialog will show up to tell the user "Under UMS mode, to complete the action, please unplug USB cable". So I think this is a bug.
Assignee | ||
Comment 21•9 years ago
|
||
Hello Harly
Maybe I does not describe clearly in previous comment. The changed behavior I said in comment 16 is
"I also think that switching from UMS to MTP mode should be grayed out while USB Sharing is enabled. i.e. to switch between UMS and MTP you should first disable USB Sharing, and then once its been fully disabled (including the cable unplug for disabling UMS) then the controls would become ungrayed."
The above description is different with the spec in bug 922927 (see the page7). That's the reason why I need your comment that if this spec change is reasonable for UX.
This spec change will make user can only change the USB sharing protocol while the USB sharing is disabled.
Flags: needinfo?(hhsu)
Comment 23•9 years ago
|
||
Hi Eden, just want to make sure with you that there is really no way to switch between UMS and MTP without unplugging the USB?
Flags: needinfo?(hhsu) → needinfo?(echuang)
Comment 24•9 years ago
|
||
You can switch from MTP to UMS without nplugging, but not from UMS to MTP.
At least this was the case with some phones.
I felt that having the software behave the same across all phones was more important than optimizing things for particular phones.
If we want to make it different for each phone, then it would be possible to add an attribute for the phone so that the software knows whether an unplug is needed or not.
Assignee | ||
Comment 25•9 years ago
|
||
Hello Harly
Just like Dave mentioned in comment 24, some phones might switch protocols without unplugging, but some phones cannot.
I also agree that we should make the software behave the same cross all phones. Only allowing protocol switching when phone is unplugged in default. And an attribute to support protocol switching without unplugging.
Flags: needinfo?(echuang) → needinfo?(hhsu)
Comment 26•9 years ago
|
||
Hi Eden,
I agree with what Dave suggested in comment 24, and to have an attribute for phone that support protocol for switching without unplugging. Thanks!
Flags: needinfo?(hhsu)
Updated•9 years ago
|
Flags: needinfo?(hcheng)
Comment 27•9 years ago
|
||
[Blocking Requested - why for this release]:
Continue fixing on next release
blocking-b2g: 2.2? → 2.5?
Comment 28•9 years ago
|
||
marked as 2.5+
Eden/Fred, please help working on this, thanks!
blocking-b2g: 2.5? → 2.5+
Comment 29•9 years ago
|
||
Assign owner to Eden.
Eden, please help open another bug for gaia change and cowork with Fred. Thanks.
Assignee: nobody → echuang
Assignee | ||
Updated•9 years ago
|
Target Milestone: --- → FxOS-S5 (21Aug)
Assignee | ||
Updated•9 years ago
|
Target Milestone: FxOS-S5 (21Aug) → FxOS-S7 (18Sep)
Assignee | ||
Updated•9 years ago
|
Assignee | ||
Comment 30•9 years ago
|
||
After discuss with Fred, we will add a new key in mozSettings to control whether can switch the transferring protocol while usb storage is enabled.
Partner should set the settings key according to their phone environment, and there is no need Gecko support an API to control.
Assignee | ||
Updated•9 years ago
|
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Updated•9 years ago
|
QA Whiteboard: [COM=MTP/UMS][MGSEI-Triage+] → [MGSEI-Triage+]
Comment 32•9 years ago
|
||
Correct component to Gaia::Settings as bug 1194045.
Component: MTP/UMS → Gaia::Settings
You need to log in
before you can comment on or make changes to this bug.
Description
•