Closed Bug 975299 Opened 11 years ago Closed 11 years ago

[Sora][STK]Can not enter to 'Refresh' Menu again after execute Refresh command.

Categories

(Firefox OS Graveyard :: Gaia::Settings, defect, P1)

defect

Tracking

(Not tracked)

RESOLVED FIXED
1.4 S6 (25apr)

People

(Reporter: sync-1, Unassigned)

Details

(Keywords: regression, Whiteboard: [POVB])

Attachments

(3 files)

Created an attachment (id=635779) adb log DEFECT DESCRIPTION: Can not enter to 'Refresh' Menu again after execute Refresh command. REPRODUCING PROCEDURES: 1.MS load simulated SIM card and SATK application which can send "Refresh" procative SIM command. 2.Enter to 'Refresh' Menu,run the test case STM07002->SPN,after execute refresh command,the screen exit 'Refresh' Menu. 3.Try to enter to 'Refresh' Menu again,will find the screen no response and can not enter to it ->KO. EXPECTED BEHAVIOUR: It should can enter to 'Refresh' Menu again normally. ASSOCIATE SPECIFICATION: TEST PLAN REFERENCE: 3GPP TS 11.14 TOOLS AND PLATFORMS USED: V108 USER IMPACT: Important. REPRODUCING RATE: 2/2. For FT PR, Please list reference mobile's behavior:
Attached file QXDM log
Attached file adb log
Does this reproduce on a 1.1 Buri device?
Flags: needinfo?(sync-1)
(In reply to Jason Smith [:jsmith] from comment #3) > Does this reproduce on a 1.1 Buri device? 1.1 Buri is OK.
blocking-b2g: --- → 1.3?
Flags: needinfo?(sync-1)
Keywords: regression
Hi, Checking the log traces I saw a strange empty command: I/Gecko ( 303): -*- [SUB0] QCContentHelper_QC_B2G: sendMessage to content process: icc-stkcommand{ iccId : '89441000000400617452', command : { } } I/Gecko ( 303): -*- [SUB0] QCContentHelper_QC_B2G: sendMessage to content process: RIL:StkCommand{ }
Flags: needinfo?(sync-1)
Dear Fernando, I will check this with QA and will upload traces if v1.1 is ok. Thanks for your strong support! BR Chen
Waiting on additional traces here before making a blocking decision.
Dear Fernando, v1.1's traces don't have the empty command. Can I just ignore the empty command in gaia?? Thanks a lot! Br Chen
(In reply to xiaokang.chen from comment #8) > Dear Fernando, > v1.1's traces don't have the empty command. Can I just ignore the empty > command in gaia?? > Thanks a lot! > > Br > Chen Hi Chen, Currently, Gaia STK code expects more information into the command object: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/icc.js#L133 We should add a check here to avoid Gaia crashes and ignore these command; but my question is Why is sending an empty command?
The empty command shouldn't be received, ni to carol who might shed some light about this. Thanks!
Flags: needinfo?(cyang)
(In reply to Fernando R. Sela (no CC, needinfo please) [:frsela] from comment #9) > (In reply to xiaokang.chen from comment #8) > > Dear Fernando, > > v1.1's traces don't have the empty command. Can I just ignore the empty > > command in gaia?? > > Thanks a lot! > > > > Br > > Chen > > Hi Chen, > Currently, Gaia STK code expects more information into the command object: > https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/icc.js#L133 > > We should add a check here to avoid Gaia crashes and ignore these command; > but my question is Why is sending an empty command? Hi fernando, You're right, I have filed an SR in qualcomm:01465335 for this bug.
Dear Fernando, I found where send the empty stkcommand in qualcomm's code. I will contact their developer for an solution. Thanks a lot!
ok, so de-nominating and including POVB tag!
blocking-b2g: 1.3? → ---
Whiteboard: [POVB]
This patch only protects GAIA from crashes if RIL send malformed STK messages. So this patch doesn't fix the main issue, but I think this is necessary to avoid bigger problems in the future. Can you test if this patch allows you to enter again into the 'Refresh' Menu again?
Attachment #8382948 - Flags: feedback?(chenxk)
We will track this bug via SR.
Flags: needinfo?(cyang)
(In reply to Fernando R. Sela (no CC, needinfo please) [:frsela] from comment #14) > Created attachment 8382948 [details] [review] > Protection to malformed STK Commands > > This patch only protects GAIA from crashes if RIL send malformed STK > messages. So this patch doesn't fix the main issue, but I think this is > necessary to avoid bigger problems in the future. > > Can you test if this patch allows you to enter again into the 'Refresh' Menu > again? Thanks again for your help. Sure it's OK for gaia, I will let QA test it on our daily version cause I can't do the refresh test in my office. I'll add comment if I got the result.
Dear Fernando, I got this traces: I/GeckoDump( 7095): [system] STK Proactive Command bad formed: {"commandNumber":1,"typeOfCommand":37,"commandQualifier":0,"options":{"title":"USIM卡应用","items":[{"identifier":17,"text":"精品推荐"},{"identifier":49,"text":"天气预报"},{"identifier":50,"text":"航班查询"},{"identifier":51,"text":"出行指南"},{"identifier":52,"text":"体坛快讯"},{"identifier":81,"text":"新闻早晚报"},{"identifier":82,"text":"手机音乐"},{"identifier":83,"text":"手机阅读"},{"identifier":84,"text":"手机邮箱"},{"identifier":85,"text":"短信助理"},{"identifier":86,"text":"手机营业厅"}],"presentationType":0}} As I know, the STK command don't have the "iccid" and "command" property. Shall we just ignor them in the protection you add ?
Flags: needinfo?(frsela)
Hi, Current Gaia version is changed to support DSDS son Gecko version with DSDS is also required. If you want to patch previous versions you should add the same check considering that no iccId is given and that the command is sent directly. In other words, in DSDS we receive a message object with the iccId and the STK command; without DSDS we only receive the command. So for previous versions check you should use: if (!command.typeOfCommand || !command.options) { ... } Regards
Flags: needinfo?(frsela)
(In reply to Fernando R. Sela (no CC, needinfo please) [:frsela] from comment #18) > Hi, > > Current Gaia version is changed to support DSDS son Gecko version with DSDS > is also required. > > If you want to patch previous versions you should add the same check > considering that no iccId is given and that the command is sent directly. > > In other words, in DSDS we receive a message object with the iccId and the > STK command; without DSDS we only receive the command. > > So for previous versions check you should use: > > if (!command.typeOfCommand || !command.options) { > ... > } > > Regards Hi Fernando, Did you communicate with qualcomm about this? If they didn't add the ICCID and COMMAND in the command, there will always be errors. At present, they don't add these two properties in StkService.cpp yet.
(In reply to xiaokang.chen from comment #19) > > Hi Fernando, Hi, > Did you communicate with qualcomm about this? If they didn't add the ICCID Carol commented into this bug, so QC is informed ;) > and COMMAND in the command, there will always be errors. > At present, they don't add these two properties in StkService.cpp yet. Last Gecko versions are working this way. Moreover, in the traces attached to this bug you can see it: icc-stkcommand{ iccId : '89441000000400617452', command : { } } It's sending iccId and command into the message. But the issue is that the command is empty !!!! If you want to patch old gaia versions, we shall consider that before gecko only sents the command. What's really important is to avoid mixing old gecko with new gaia and viceversa.
Adding Nivi to comment.
Flags: needinfo?(nsarkar)
Hi Fernando, For part of the problem about sending iccId in the message, here's my suggestion. Ideally we don't need the iccid in the message as we already send the clientId and we can get the iccid from the clientId by doing the following - icc = navigator.mozIccManager.getIccById(iccManager.iccIds[clientId]); The question is do we need to send duplicate info in the messages when we can easily derive one from the other. For the other part of the problem, I will test on my side and verify why we are sending the empty command in response. Will post my findings soon. Thanks, Nivi.
Flags: needinfo?(nsarkar)
(In reply to Nivi from comment #22) > Hi Fernando, > > For part of the problem about sending iccId in the message, here's my > suggestion. > > Ideally we don't need the iccid in the message as we already send the > clientId and we can get the iccid from the clientId by doing the following - > > icc = navigator.mozIccManager.getIccById(iccManager.iccIds[clientId]); > > The question is do we need to send duplicate info in the messages when we > can easily derive one from the other. > > For the other part of the problem, I will test on my side and verify why we > are sending the empty command in response. Will post my findings soon. > > Thanks, > Nivi. Dear Nivi, The case is about refresh, so when the case run successfully, there will be a refresh command and then the function "ProcessRefresh" will send an empty command. So the gaia stk didn't work. note: v1.1 don't have this issue. Cause the function "ProcessRefresh" didn't get executed.
Flags: needinfo?(sync-1)
Comment on attachment 8382948 [details] [review] Protection to malformed STK Commands This is OK as we talked.
Attachment #8382948 - Flags: feedback?(chenxk) → review?(arthur.chen)
Comment on attachment 8382948 [details] [review] Protection to malformed STK Commands Looks good to me. Flagging alive for reviewing.
Attachment #8382948 - Flags: review?(arthur.chen)
Attachment #8382948 - Flags: review?(alive)
Attachment #8382948 - Flags: feedback+
Attachment #8382948 - Flags: review?(alive) → review?(timdream)
Comment on attachment 8382948 [details] [review] Protection to malformed STK Commands We seriously need tests on icc.js even though it is self-contained.
Attachment #8382948 - Flags: review?(timdream) → review+
(In reply to Tim Guan-tin Chien [:timdream] (MoCo-TPE) (please ni?) from comment #26) > Comment on attachment 8382948 [details] [review] > Protection to malformed STK Commands > > We seriously need tests on icc.js even though it is self-contained. Hi Tim, I'll work on unit test this week
Unit tests added. If you agree I'll land
Flags: needinfo?(timdream)
Looks good, thank you very much.
Flags: needinfo?(timdream)
Flags: in-testsuite+
Target Milestone: --- → 1.4 S6 (25apr)
Hi Fernando, When we test the case 27.22.4.7.1 REFRESH SEQ 1.1, it failed and the TR returned 0x12. I found the message of REFRESH is {"iccId":"89860112811023010685","command":{"commandNumber":1,"typeOfCommand":1,"commandQualifier":3,"rilMessageType":"stkcommand","options":null,"rilMessageClientId":0}} We discard the message because the options property is null, so there isn't any response for this case and it failed. Can you help me to check it and see is the || !command.options really needed? Thank you.
Flags: needinfo?(frsela)
Answered in bug 1117619 (In reply to jinghua.xing from comment #31) > Hi Fernando, > > When we test the case 27.22.4.7.1 REFRESH SEQ 1.1, it failed and the TR > returned 0x12. I found the message of REFRESH is > {"iccId":"89860112811023010685","command":{"commandNumber":1,"typeOfCommand": > 1,"commandQualifier":3,"rilMessageType":"stkcommand","options":null, > "rilMessageClientId":0}} > > We discard the message because the options property is null, so there isn't > any response for this case and it failed. > > Can you help me to check it and see is the || !command.options really > needed? Thank you.
Flags: needinfo?(frsela)
Thanks Fernando
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: