Closed Bug 963813 Opened 11 years ago Closed 11 years ago

[B2G][Dialer] Initiating conference call while the active call is to an invalid number, causes the dialer app to freeze

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:1.3+, firefox27 wontfix, firefox28 fixed, firefox29 fixed, b2g-v1.2 unaffected, b2g-v1.3 fixed, b2g-v1.4 fixed)

RESOLVED FIXED
1.3 C3/1.4 S3(31jan)
blocking-b2g 1.3+
Tracking Status
firefox27 --- wontfix
firefox28 --- fixed
firefox29 --- fixed
b2g-v1.2 --- unaffected
b2g-v1.3 --- fixed
b2g-v1.4 --- fixed

People

(Reporter: selkabule, Assigned: hsinyi)

Details

(Keywords: regression, Whiteboard: dogfood1.3 [FT:RIL])

Attachments

(4 files, 3 obsolete files)

Attached file Dialer freze.txt
Description: Having placed a call to 1234 then attempting to call a saved contact will result in the state when screen gets frozen without any option to exit Repro Steps: 1) Updated Buri V1.3 2) Have at least one contact saved 3) Open Dialer app 4) Call 1234 and quickly tap (+) 5) Select the contact from the contact list Actual: The call will hangs and the dialer app freezes in the state without an option to exit or hang up Expected: The screen will transition to the active call screen and pause the previous call Environmental Variables Device: buri V1.3 Moz Ril Build ID: 20140121004137 Gecko: http://hg.mozilla.org/releases/mozilla-aurora/rev/6f7dfe36ab6c Gaia: 47049555282a9a01fb60d1e1421b57e2810c96f5 Platform Version: 28.0a2 Firmware Version: v1.2-device.cfg Notes: the user have to restart their device to be able to have any interaction Repro frequency: 100% See attached: video clip (http://www.youtube.com/watch?v=q4_1kAxNBfI&edit=vd), logcat, Extra Notes: Sometimes the device freezes completely
This issue does not reproduce on buri V1.2 Environmental Variables Device: Buri v 1.2.0 MOZ Build ID: 20140121004053 Gecko: http://hg.mozilla.org/releases/mozilla-b2g26_v1_2/rev/c9f305c1d9a7 Gaia: 539a25e1887b902b8b25038c547048e691bd97f6 Platform Version: 26.0 Firmware Version: v1.2-device.cfg The user is able to cancel any hanging calls and close the dialer application
blocking-b2g: --- → 1.3?
QA Contact: nkhristoforov
This is a certification blocker, please set flag 1.3+
blocking-b2g: 1.3? → 1.3+
The regression window for this bug is 11/20 to 11/21. Last Working Build: Device: Buri 1.3 MOZ BuildID: 20131120040202 Gaia: c26480b22ce28c812c347290dd4bad090d83db6f Gecko: 4f993fa378eb Version: 28.0a1 Firmware Version: V1.2-device.cfg First Broken Build: Device: Buri 1.3 MOZ BuildID: 20131121040202 Gaia: 71063dd91bc8cbb15ba335236ed67a1c5058bd58 Gecko: cf378dddfac8 Version: 28.0a1 Firmware Version: V1.2-device.cfg
rik, mind taking a look? Thanks
Flags: needinfo?(anthony)
I guess we may need help from RIL, seems there are no significant error messages or events caught by Dialer
(In reply to KM Lee [:rexboy] from comment #5) > I guess we may need help from RIL, seems there are no significant error > messages or events caught by Dialer I saw a JS Error as below. No RIL messages in the log |Dialer freze.txt|, but according to the JS Error, it seems gecko did deliver an error event with error name "UnspecifiedError" to gaia. However, gaia doesn't recognize this name that leads to call screen hanging. ================== 01-24 11:28:54.579: E/GeckoConsole(501): [JavaScript Warning: "Error in parsing value for 'font-size'. Declaration dropped." {file: "app://communications.gaiamobile.org/dialer/index.html#contacts-view" line: 0 column: 0 source: "40"}] 01-24 11:28:54.649: E/GeckoConsole(501): Content JS ERROR at app://communications.gaiamobile.org/dialer/js/telephony_helper.js:126 in errorCB: Unexpected error: UnspecifiedError ==================
Attached file log-963813 - RIL log
Seems not a gaia issue but a gecko bug. In line#5937 (as below), we try to hang up a call, whose connection hasn't been established (we can tell that from its callindex), that causes a problem. The REQUEST_HANGUP fails but our code doesn't handle this error properly. ============= line#5937 ============== 01-28 18:36:13.259 I/Gecko ( 1344): RIL Worker[0]: Received chrome message {"callIndex":4294967295,"rilMessageToken":15,"rilMessageType":"hangUp"}
Attached patch 963813.patch (obsolete) — Splinter Review
properly hang up a call whose connection hasn't really established
Comment on attachment 8366567 [details] [diff] [review] 963813.patch Review of attachment 8366567 [details] [diff] [review]: ----------------------------------------------------------------- Hi Aknow, Could you help review this? Thanks!
Attachment #8366567 - Flags: review?(szchen)
(In reply to Hsin-Yi Tsai (OOO Jan. 29 ~ Feb. 5th) [:hsinyi] from comment #7) > Created attachment 8366565 [details] > log-963813 - RIL log > > Seems not a gaia issue but a gecko bug. > > In line#5937 (as below), we try to hang up a call, whose connection hasn't > been established (we can tell that from its callindex), that causes a > problem. The REQUEST_HANGUP fails but our code doesn't handle this error > properly. > Sorry the comment isn't correct. In this case, I don't see REQUEST_HANGUP returns error. > ============= line#5937 ============== > 01-28 18:36:13.259 I/Gecko ( 1344): RIL Worker[0]: Received chrome message > {"callIndex":4294967295,"rilMessageToken":15,"rilMessageType":"hangUp"}
Component: Gaia::Dialer → RIL
Flags: needinfo?(anthony)
Attachment #8366567 - Flags: review?(szchen)
Whiteboard: dogfood1.3 → dogfood1.3 [FT:RIL]
Attachment #8366565 - Attachment mime type: text/x-vhdl → text/plain
I reviewed the log again, and I wonder my previous patch doesn't really point to the root cause. From the log Attachment #8366565 [details], the second call(0916259153) is still dialed out even the 1st call(12345) state stays "alerting/connecting". However, [1] doesn't allow the 2nd outgoing call if there's already a dialing call. Needs to figure out what's wrong with the code. ============ line#5415 01-28 18:35:39.689 I/Gecko ( 1344): TelephonyProvider: handleCallStateChange: {"state":3,"callIndex":1,"toa":129,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePriv acy":false,"number":"12345","numberPresentation":0,"name":"","namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false} line#5459 01-28 18:35:50.289 I/Gecko ( 1344): -*- RadioInterface[0]: Received message from worker: {"rilMessageToken":13,"rilMessageType":"enumerateCalls","calls":[{"state":3,"callIndex" :1,"toa":129,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"12345","numberPresentation":0,"name":"","namePresentation":0,"uusInfo":null,"isOu tgoing":true,"isEmergency":false,"isConference":false}]} line#5469 01-28 18:35:50.359 I/Gecko ( 1344): TelephonyProvider: Dialing 0916259153 ============ [1] http://dxr.mozilla.org/mozilla-central/source/dom/telephony/Telephony.cpp?from=Telephony.cpp#249
Attached patch 963813-v2.patch (obsolete) — Splinter Review
[1] checks if call->IsOutgoing() is true while IsOutgoing() returns mOutgoing which is set to true if |CallState == STATE_DIALING|. But dialer app initiates different telephony objects for telephony.dial(). And think about the case: A new telephony object is created while there's already one outgoing call on-going. The new telephony object calls enumerate() and it gets response from RIL. If the response time is longer, then the first outgoing call might change to 'alerting' state. So when the new telephony objects new a call object for this call after the response from RIL, mOutgoing won't be set to true because the call state isn't dialing... Back to the bug, we don't really need IsOutgoing(). What we need is check the call state and see if the call is still in dialing process. [1] http://dxr.mozilla.org/mozilla-central/source/dom/telephony/Telephony.cpp#221
Attachment #8366567 - Attachment is obsolete: true
Attachment #8367134 - Flags: review?(szchen)
Comment on attachment 8367134 [details] [diff] [review] 963813-v2.patch Review of attachment 8367134 [details] [diff] [review]: ----------------------------------------------------------------- Good.
Attachment #8367134 - Flags: review?(szchen) → review+
FINAL version - remove unreferenced members.
(In reply to Hsin-Yi Tsai (OOO Jan. 29 ~ Feb. 5th) [:hsinyi] from comment #14) > Created attachment 8367137 [details] [diff] [review] > 963813-v3.patch. r=aknow > > FINAL version - remove unreferenced members. The patch is ready and manual test looks great. However, try tree is closed. I will push to try and check-in later. (Time to catch my train to home!)
patch for mozilla-aurora (1.3)
Attachment #8367134 - Attachment is obsolete: true
Comment on attachment 8367137 [details] [diff] [review] 963813-v3.patch. r=aknow FINAL patch for mozilla-central
Attachment #8367137 - Attachment filename: 963813-v3.patch → 963813-final-central.patch
Though the try server looks green, I hit error when answer(call) was called in setupConferenceThreeCalls(), in test_conference.js. ========= TEST-UNEXPECTED-FAIL | test_conference.js | conference.state - got connected, expected held ========= With debugging I realized that it's a timing issue. When there's already a connected conference call, answering a new incoming call triggers conference state change. We should wait for |conference.onstatechange| before checking the state of the conference call. Hi Aknow/Vicamo/Yoshi, Hope you are not gone for the Chinese new year. Could any of you help review this? Thanks!
Attachment #8367415 - Flags: review?(vyang)
Attachment #8367415 - Flags: review?(szchen)
Attachment #8367415 - Flags: review?(allstars.chh)
(In reply to Hsin-Yi Tsai (OOO Jan. 29 ~ Feb. 5th) [:hsinyi] from comment #18) > Created attachment 8367415 [details] [diff] [review] > 963813-p2.patch -- part2 - test case > > Though the try server looks green, I hit error when answer(call) was called I hit the error when I ran marionette locally > in setupConferenceThreeCalls(), in test_conference.js. > ========= > TEST-UNEXPECTED-FAIL | test_conference.js | conference.state - got > connected, expected held > ========= > With debugging I realized that it's a timing issue. > > When there's already a connected conference call, answering a new incoming > call triggers conference state change. We should wait for > |conference.onstatechange| before checking the state of the conference call. > > Hi Aknow/Vicamo/Yoshi, > Hope you are not gone for the Chinese new year. Could any of you help review > this? Thanks!
Comment on attachment 8367415 [details] [diff] [review] 963813-p2.patch -- part2 - test case Okay... bug 943275 has been filed for tracking the test script failure before. And there's indeed a flaw in the script code. I will move the test case to bug 943275 to not block this blocker (because it's chinese new year now... reviewers are from computer...)
Attachment #8367415 - Flags: review?(vyang)
Attachment #8367415 - Flags: review?(szchen)
Attachment #8367415 - Flags: review?(allstars.chh)
try on m-c looks green: https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a try on m-aurora failed due to bug 943275, rest looking good: https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a As bug 943275 has been there for a while, it's not caused by this patch. I say this patch is safe to go. I will provide the solution to bug 943275 after I come back to office. push: https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a
Attachment #8367415 - Attachment is obsolete: true
(In reply to Hsin-Yi Tsai (OOO Jan. 29 ~ Feb. 5th) [:hsinyi] from comment #21) > try on m-c looks green: https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a > try on m-aurora failed due to bug 943275, rest looking good: > https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a > > As bug 943275 has been there for a while, it's not caused by this patch. I > say this patch is safe to go. I will provide the solution to bug 943275 > after I come back to office. > > push: https://tbpl.mozilla.org/?tree=Try&rev=60cbd8d190d2a push:https://hg.mozilla.org/integration/b2g-inbound/rev/49bc6f0b1d01 this is the right link.
Assignee: nobody → htsai
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: