Closed Bug 965765 Opened 11 years ago Closed 11 years ago

SIM locked after airplane mode disabling

Categories

(Firefox OS Graveyard :: RIL, defect)

defect
Not set
blocker

Tracking

(blocking-b2g:1.3+, b2g-v1.3 fixed, b2g-v1.4 fixed)

RESOLVED FIXED
1.3 C3/1.4 S3(31jan)
blocking-b2g 1.3+
Tracking Status
b2g-v1.3 --- fixed
b2g-v1.4 --- fixed

People

(Reporter: flaburgan, Assigned: gerard-majax)

References

Details

(Keywords: regression, Whiteboard: [systemsfe])

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 (Beta/Release) Build ID: 20131206145143 Steps to reproduce: With a SIM which has the PIN activated: Turn on airplane mode. Turn off airplane mode. Actual results: The airplane icon in the header disappear but the signal strength icon indicate no signal: the SIM is locked, so no call can be received. You can see in the settings (Call Settings, Messages settings...) that the SIM is still locked. Expected results: The PIN should be asked to the user, to unlock the SIM.
Severity: normal → blocker
blocking-b2g: --- → 1.3?
Keywords: regression
Opening dialer makes the SIM PIN asked.
I'm reproducing this on Inari with v1.3.
Keywords: qawanted
Assignee: nobody → kaze
Status: UNCONFIRMED → NEW
Ever confirmed: true
blocking-b2g: 1.3? → 1.3+
Hello Alexandre, Could you provide more info on what you need from QA exactly? I can assume you would want us to test on a Buri, but I of course would prefer to be completely sure. :) Thank you!
Flags: needinfo?(lissyx+mozillians)
(In reply to Matthew Vaughan from comment #3) > Hello Alexandre, > > Could you provide more info on what you need from QA exactly? I can assume > you would want us to test on a Buri, but I of course would prefer to be > completely sure. :) Thank you! Not only, getting confirmation that other devices are affected and finding some regression window maybe.
Flags: needinfo?(lissyx+mozillians)
This issue reproduces on the Buri and the Helix using their respective 1.3 builds from 01/30/14. This issue does not reproduce on the Buri and the Helix using their respective 1.2 builds from 01/30/14.
This issue started reproducing on the 12/10/13 1.3 build. - Works - Device: Buri v1.3 MOZ RIL BuildID: 20131209053402 Gaia: 1d45d1dc3201059d5c8f2efdeb92c04576d8e161 Gecko: 9f12a9fab080 Version: 28.0a1 Firmware Version: V1.2-device.cfg - Broken - Device: Buri v1.3 MOZ RIL BuildID: 20131210004003 Gaia: 3452fbdb5e1bed0cd27cc6173136537a03e8072f Gecko: e0c328d99742 Version: 28.0a2 Firmware Version: V1.2-device.cfg
un-assign kaze everyone can work on it.
Assignee: kaze → nobody
Let's try do so something on this ...
Assignee: nobody → lissyx+mozillians
Whiteboard: [systemfe]
Target Milestone: --- → 1.3 C3/1.4 S3(31jan)
Looks like at least the low level Gecko RIL code is fine: I/Gecko ( 112): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"pinRequired"} I/Gecko ( 112): -*- RadioInterface[0]: Received message from worker: {"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"xxxxx"}
pinRequired is getting back to Gaia: E/GeckoConsole( 111): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:116 in SIMSlot.prototype.debug: [SIMSLOT][0][-1389795604328.694]pinRequired
Considering that the events seems to get upto the Gaia stack, I'm wondering if it might not be the same issue as bug 963584 ...
Hm I do not see the will-unlock event coming in sim_lock.js.
(In reply to Matthew Vaughan from comment #6) > This issue started reproducing on the 12/10/13 1.3 build. > > - Works - > Device: Buri v1.3 MOZ RIL > BuildID: 20131209053402 > Gaia: 1d45d1dc3201059d5c8f2efdeb92c04576d8e161 > Gecko: 9f12a9fab080 > Version: 28.0a1 > Firmware Version: V1.2-device.cfg > > - Broken - > Device: Buri v1.3 MOZ RIL > BuildID: 20131210004003 > Gaia: 3452fbdb5e1bed0cd27cc6173136537a03e8072f > Gecko: e0c328d99742 > Version: 28.0a2 > Firmware Version: V1.2-device.cfg Based on those, I've been able to identify the root commit for this regression: $ git bisect bad 7c82ac2dcac17b672f2fab94f08ed562059c07b2 is the first bad commit commit 7c82ac2dcac17b672f2fab94f08ed562059c07b2 Author: Alive Kuo <alegnadise@gmail.com> Date: Thu Dec 5 21:27:31 2013 +0800 Bug 928292 - [DSDS] SIM PIN Unlock Dialog :100644 100644 52edfe637c5eb38653c64b4c6857fbf62e4efbbf 4b017300770fef1a9638ab21d3a71465dcd3606f M Makefile :040000 040000 30dbdee73f54c3bc557ff6ef813884a685a5aee0 a2fa056a315e8f8bffdff52707b91dd3b15f322e M apps :040000 040000 0d9856345f6ce90df80f2fa3fa6b1f06cbfb5e6d c170a67f0cb4721c0dc0acf05b29b51d626b89e8 M shared
Depends on: 928292
Flags: needinfo?(alive)
Whiteboard: [systemfe] → [systemsfe]
:/ No idea not and I may not have time to work on this week.
Flags: needinfo?(alive) → needinfo?(arthur.chen)
When I reproduce the issue, I do not see any 'cardstatechange' event from simslot.js :(
The cardstatechange event gets triggered in Gecko but does not reach Gaia: I/Gecko ( 112): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":null} I/Gecko ( 325): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":null} I/Gecko ( 112): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"unknown"} I/Gecko ( 112): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"unknown"}} I/Gecko ( 325): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"unknown"}} I/Gecko ( 112): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"pinRequired"} I/Gecko ( 112): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 325): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 112): -*- RadioInterface[0]: Received message from worker: {"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"xxx"} I/Gecko ( 325): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"xxx"}} I/Gecko ( 112): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"xxx"}} E/GeckoConsole( 112): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:116 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390040252294.527] publish: iccinfochange
Could it be a race between cardstatechange and SIMSlot.update() registering addEventListener('cardstatechange'): I/Gecko ( 709): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":null} I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged I/Gecko ( 761): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":null} I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged I/Gecko ( 709): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"unknown"} I/Gecko ( 709): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"unknown"}} I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 761): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"unknown"}} I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 709): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"pinRequired"} I/Gecko ( 761): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 709): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 709): -*- RadioInterface[0]: Received message from worker: {"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"} I/Gecko ( 761): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"}} I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 761): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged I/Gecko ( 709): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"}} I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 709): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged E/GeckoConsole( 709): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390051681002.812]SIMSlot.update: iccObj=[object MozIcc]; J()={}; evt=cardstatechange E/GeckoConsole( 709): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390051681002.802]SIMSlot.update: iccObj=[object MozIcc]; J()={}; evt=iccinfochange E/GeckoConsole( 709): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390051681002.761]SIMSlot.prototype.handleEvent: received: iccinfochange E/GeckoConsole( 709): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390051681002.757] publish: iccinfochange
I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"unknown"}} I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 879): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"cardstatechange","cardState":"pinRequired"} I/Gecko ( 879): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: Received message 'RIL:CardStateChanged': {"clientId":0,"data":{"rilMessageType":"cardstatechange","cardState":"pinRequired"}} I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: name=notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: apply handler for notifyCardStateChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: applied handler for notifyCardStateChanged I/Gecko ( 879): -*- RadioInterface[0]: Received message from worker: {"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"} I/Gecko ( 934): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"}} I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 934): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged I/Gecko ( 879): -*- RILContentHelper: Received message 'RIL:IccInfoChanged': {"clientId":0,"data":{"iccType":"usim","rilMessageType":"iccinfochange","isDisplaySpnRequired":true,"isDisplayNetworkNameRequired":false,"iccid":"8933200312111422227"}} I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: name=notifyIccInfoChanged I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: apply handler for notifyIccInfoChanged I/Gecko ( 879): -*- RILContentHelper: _deliverEvent: applied handler for notifyIccInfoChanged E/GeckoConsole( 879): Content JS DEBUG at app://system.gaiamobile.org/js/simslot_manager.js:126 in ssm_handleEvent: SIMSlot Manager: handleEvent: evt.type=iccdetected E/GeckoConsole( 879): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390052180735.144]SIMSlot.update: iccObj=[object MozIcc]; J()={}; evt=cardstatechange E/GeckoConsole( 879): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390052180735.132]SIMSlot.update: iccObj=[object MozIcc]; J()={}; evt=iccinfochange E/GeckoConsole( 879): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390052180735.102]SIMSlot.prototype.handleEvent: received: iccinfochange E/GeckoConsole( 879): Content JS LOG at app://system.gaiamobile.org/js/simslot.js:119 in SIMSlot.prototype.debug: [SIMSLOT][0][-1390052180735.100] publish: iccinfochange
I think iccdetected event should be fired before any cardstatechange event to avoid this issue. Hsinyi, who is the right person to look at this?
Flags: needinfo?(arthur.chen) → needinfo?(htsai)
I like the comment at: http://hg.mozilla.org/mozilla-central/annotate/c90c5daad2ad/dom/system/gonk/ril_worker.js#l2963 > // We should send |cardstatechange| before |iccinfochange|, otherwise we > // may lost cardstatechange event when icc card becomes undetected.
I'm moving component and un-assigning myself on this one, need to focus on other stuff.
Assignee: lissyx+mozillians → nobody
Component: Gaia::System → RIL
Assignee: nobody → lissyx+mozillians
I may have some idea ...
Hi Edgar, I will take one more day off. Would you please help check this issue once you are back from the new year holidays? Thanks.
Flags: needinfo?(htsai) → needinfo?(echen)
Please find attached a pull request that helps with this issue by triggering a cardstatechange event.
Attachment #8369982 - Flags: review?(alive)
Could you explain why this works?
We generate (with publish()) a 'simslot-cardstatechange' event, that is listened for by the SimLock code, that will display the SIM PIN interface if the SIM card is locked.
Comment on attachment 8369982 [details] Link to Github https://github.com/mozilla-b2g/gaia/pull/15940 Please do listen to simslot-iccinfochange in sim_slot.js and add comments there to explain why do we need one more event handler. Thanks for your hard investigation.
Attachment #8369982 - Flags: review?(alive) → review+
(In reply to Alive Kuo [:alive][NEEDINFO!][:艾莉芙][Paris 2/3-2/7] from comment #27) > Comment on attachment 8369982 [details] > Link to Github https://github.com/mozilla-b2g/gaia/pull/15940 > > Please do listen to simslot-iccinfochange in sim_slot.js and add comments > there to explain why do we need one more event handler. Thanks for your hard > investigation. Done, thanks !
Flags: needinfo?(echen)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Patch applied on my keon, it fixes the bug. Thank you Alexandre!
v1.3: c1b009dfc41baa7eb32a5a6e68f39235f9e12497
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: