Closed Bug 1002838 Opened 6 years ago Closed 6 years ago

[B2G][Tarako][Dialer]Manually dialing voicemail in a three way call freezes the phone

Categories

(Firefox OS Graveyard :: Gaia::Dialer, defect, critical)

ARM
Gonk (Firefox OS)
defect
Not set
critical

Tracking

(blocking-b2g:1.3T+, b2g-v1.3 unaffected, b2g-v1.3T affected)

RESOLVED DUPLICATE of bug 1007598
blocking-b2g 1.3T+
Tracking Status
b2g-v1.3 --- unaffected
b2g-v1.3T --- affected

People

(Reporter: JMercado, Unassigned)

Details

(Keywords: hang, reproducible, Whiteboard: [tarako-exploratory])

Attachments

(5 files)

Description:
If the user calls voicemail by manually dialing it during another call (three way call), the phone will freeze.  The other device will remain on the line as long as they don't hang up.  No crash log is created.

Repro Steps:
1) Update a Tarako to BuildID: 20140428014001
2) Open the Dialer and call another device
3) Wait for the call to connect
4) Call voicemail by manually dialing the number.

Actual:
The device freezes as soon as the second call begins.

Expected:
The phone connects to voicemail naturally.

1.3T Environmental Variables:
Device: Tarako 1.3T MOZ
BuildID: 20140428014001
Gaia: 8895b180ed636069473703d0e7b73086989601ce
Gecko: 7caf4b5abfce
Version: 28.1
Firmware Version: sp6821

Repro frequency: 100%
See attached: logcat, firewatch report, video
This issue does not occur on 1.3 Buri

1.3 Environmental Variables:
Device: Buri 1.3 MOZ
BuildID: 20140425024003
Gaia: 32a9e3db738e0b3bc44a4d4d5c16512a2617a2cf
Gecko: c96b0cf6343f
Version: 28.0
Firmware Version: v1.2-device.cfg

The call reaches their voicemail as expected.
Jayme, when you say freeze, do you mean you have to pull the battery out?
Flags: needinfo?(jmercado)
Yes the battery must be removed to use the phone again.

I have also made the video you can see here.

http://youtu.be/MggeGFM6hXQ
Flags: needinfo?(jmercado)
blocking-b2g: --- → 1.3T?
Severity: normal → critical
Keywords: hang, reproducible
ni? Sku

triage: 1.3T+ for a hang issue
blocking-b2g: 1.3T? → 1.3T+
Flags: needinfo?(sku)
Hi Jayme:
 I cannot repo. this issue at my side.
And it seems ril related log is off.

// Log analysis
/*
 * 3 MO calls were made? but only one disconnect????
 */
04-28 16:25:04.242   477   477 I log     : <4>0[ 98.984995] lowmem_shrink select 411 (Communications), adj 10, size 8183, to kill
04-28 16:26:06.792   598   598 I log     : <4>0[ 161.551422] lowmem_shrink select 530 (Usage), adj 10, size 5371, to kill
04-28 16:28:34.832   640   640 I log     : <4>0[ 309.567081] lowmem_shrink select 481 (Communications), adj 10, size 6393, to kill
04-28 16:30:12.732    83   291 I Gecko   : RIL Worker: [0] Create a pending outgoing call.
04-28 16:30:14.042   701   701 I log     : <4>0[ 408.820813] lowmem_shrink select 605 (Settings), adj 10, size 6690, to kill
04-28 16:30:44.292    83   291 I Gecko   : RIL Worker: [0] Create a pending outgoing call.
04-28 16:30:54.482   803   803 I log     : <4>0[ 449.220228] lowmem_shrink select 637 (Communications), adj 10, size 7505, to kill
04-28 16:31:13.142    83   291 I Gecko   : RIL Worker: [0] Create a pending outgoing call.
04-28 16:31:13.162    83   291 I Gecko   : RIL Worker: [0] Disconnect pending outgoing call
04-28 16:31:14.872   919   919 I log     : <4>0[ 469.669997] lowmem_shrink select 846 ((Preallocated a), adj 10, size 4642, to kill




Could you please follow below steps to enable ril log, and try to get log again?

// Enable ril STRs
1 adb pull /system/b2g/defaults/pref/user.js /tmp
2 Modify /tmp/user.js, and set the value of ril.debugging.enabled to true.
      pref("ril.debugging.enabled", true);
3 adb remount
4 adb push /tmp/user.js /system/b2g/defaults/pref/
5 adb reboot

// Log command
adb logcat -b radio -b main -v threadtime > /tmp/1002838.log
Flags: needinfo?(sku) → needinfo?(jmercado)
BTW, my version:
Gaia      b5adc5a943d3abbd6ab070a47c847f2c24891cc5
Gecko     8a7c8b72625666950a09cfcfa5d6c953dd7d27b6
BuildID   20140429180512
Version   28.1
ro.build.version.incremental=eng.sku.20140429.180455
ro.build.date=Tue Apr 29 18:05:00 CST 2014
Keywords: qawanted
Attached file 1002838.log
I'm attaching the log as requested.  I was not sure if the name you chose in your command was a desired name or not so I left it as is.  

Of note:  After turning on RIL debugging, the repro rate for this issue seems to have dropped.  It took me 2-4 three-way calls to the voicemail per repro instead of on the first every time.
Flags: needinfo?(jmercado)
From ril's perspective

User tried to place a new call to 6509605939 around 04-29 09:47:48.931.
And that call cannot be made. (rejected immediately after dial), gecko report callDisconnected event too.

Might need system/gaia team to check further what cause hang (see comment 4).
BTW, I still can not repro this issue on my side.


// Log snippet
04-29 09:47:32.641  1182  1182 I log     : <4>0[ 652.548712] lowmem_shrink select 1041 (Communications), adj 10, size 7688, to kill

04-29 09:47:32.671    96   318 D RILC    : [0519]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=129,norm,mo,als=0,voc,noevp,7012406542,cli=0,name='(null)',0}
04-29 09:47:48.931    96   318 D RILC    : [0531]> DIAL (num=6509605939,clir=0)
04-29 09:47:48.941    96   209 D RIL     : The last call fail cause: 34
04-29 09:47:48.941    96   318 D RILC    : [0531]< DIAL
04-29 09:47:48.971    96   318 D RILC    : [0534]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=129,norm,mo,als=0,voc,noevp,7012406542,cli=0,name='(null)',0}
04-29 09:47:48.971    84   294 I Gecko   : RIL Worker: [0] Handling parcel as REQUEST_DIAL
04-29 09:47:48.971    84   294 I Gecko   : RIL Worker: [0] Create a pending outgoing call.
04-29 09:47:49.001    84   294 I Gecko   : RIL Worker: [0] Disconnect pending outgoing call
04-29 09:47:49.631    84    84 I Gecko   : -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callDisconnected","call":{"number":"6509605939","state":2,"callIndex":4294967295,"isOutgoing":true,"isEmergency":false,"isConference":false,"failCause":"UnspecifiedError"},"rilMessageClientId":0}

04-29 09:47:50.531  1267  1267 I log     : <4>0[ 670.371184] lowmem_shrink select 1195 ((Preallocated a), adj 10, size 4666, to kill
Hi TingYuan:
 Could you please have a look of this issue to see anything weird?

Thanks!!
Shawn
Flags: needinfo?(thuang)
Before applications are killed, their nice values were changed to 18, which suggests that their oom_adj were likely changed to 20MB except for preallocated-app, whose oom_adj is changed to 20MB when becoming other applications. I think this is not a problem in low-memory-killer, although it can be a problem with low-memory-killer (if there are some critical regions that preallocated-app shouldn't be accidentally killed).

By the way, can the pull-down menu (system app) or power button work when the problem occurred? Did logcat continue printing logs after the UI frozen?
Flags: needinfo?(thuang) → needinfo?(jmercado)
Keywords: qawanted
The pull-down menu and power button do not work after this has occured.  I did another log cat and the only thing that continues to report is the following once every 10 seconds.

04-30 09:48:42.583: E/slog(101): check_available_volume: statfs return err! [2]
Flags: needinfo?(jmercado)
Keywords: qawanted
After the last b2g process (Preallocated, 846) being killed, the CPU time of b2g increased 24.9 seconds in 27 seconds (wall clock). I'll try to reproduce the problem to find out on what b2g was spinning.
It seemed to be trapped in an infinite loop in gaia. The gaia_build_defer_index.js was minimized so I don't know what exactly happened. @Tim, may I know your opinion?

0 localized() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":131]
1 ll10n_get() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":9]
2 ut_addEllipsis() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":129]
3 hc_formatPhoneNumber() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":248]
4 lookupContact() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":246]
5 anonymous() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":57]
6 getItemOnSuccess() ["app://callscreen.gaiamobile.org/gaia_build_defer_index.js":19]
Flags: needinfo?(timdream)
Could you upload your gaia_build_defer_index.js and needinfo :etienne? Thanks.
Flags: needinfo?(timdream)
Flags: needinfo?(etienne)
I am reading a while() loop in line 131/132 trying to fit the string in the label.

while(fakeView.getBoundingClientRect().width>viewWidth){if(localizedSide=='left'){newPhoneNumber='\u2026'+value.substr(-value.length+counter);}else if(localizedSide=='right'){newPhoneNumber=value.substr(0,value.length-counter)+'\u2026';}
fakeView.innerHTML=newPhoneNumber;counter++;}

I wonder if we did something wrong there?
(In reply to Tim Guan-tin Chien [:timdream] (MoCo-TPE) (please ni?) from comment #17)
> I am reading a while() loop in line 131/132 trying to fit the string in the
> label.
> 
> while(fakeView.getBoundingClientRect().
> width>viewWidth){if(localizedSide=='left'){newPhoneNumber='\u2026'+value.
> substr(-value.length+counter);}else
> if(localizedSide=='right'){newPhoneNumber=value.substr(0,value.length-
> counter)+'\u2026';}
> fakeView.innerHTML=newPhoneNumber;counter++;}
> 
> I wonder if we did something wrong there?

We never had any issue (except the bad performance) with this code and it shouldn't be "edgy".

I flashed a fresh v1.3t on my tarako and couldn't reproduce the bug. Same thing with the gaia hash mentioned in the Description.
I go through the exact same steps than on the video except the first call is put on hold and not ended, and the phone doesn't freeze.

Also my gecko/gonk are pretty old so might not be gaia-related.
Flags: needinfo?(etienne)
Could you update your Gecko/Gonk and try again? We would need your help to identify which API is at fault if this is not a Gaia bug.
Flags: needinfo?(etienne)
(In reply to Tim Guan-tin Chien [:timdream] (MoCo-TPE) (please ni?) from comment #19)
> Could you update your Gecko/Gonk and try again? We would need your help to
> identify which API is at fault if this is not a Gaia bug.

I've been waiting for a machine capable of flashing a tarako for 2 weeks, I'm told it should be ready soon... I'll take another look as soon as soon as my tarako is upgraded.
Flags: needinfo?(etienne)
I'm unable to reproduce this issue on a completely up to date tarako (1.3t obviously).
Also tried calling the tarako and hanging up just as I call the voicemail (to reproduce the video better, since the call doesn't get on hold there) and it worked fine.

Can somebody else try on a up-to-date tarako? The repro rate was 100% so the issue may be fixed :)
QA Wanted to test this on the latest build.
Keywords: qawanted
Attached file 5-6-2014.log
I was able to reproduce this on today's 1.3T, but the repro rate has dropped to 6-8 tries to reproduce instead of 100%.

1.3T Environmental Variables:
Device: Tarako 1.3T MOZ
BuildID: 20140506014003
Gaia: aef737f4eae863949d4b42cd6c17339aec3a5fa0
Gecko: cd0c51278ae5
Version: 28.1
Firmware Version: sp6821a-Gonk-4.0-4-29

I am attaching a log of the reproduction on today's build with RIL debugging turned on.
I'm wondering if this is related to workloads, such as contacts, call histories, etc. Jayme, may I know what the workloads are on your devices? I can't reproduce it on a clean Tarako and reference-workload-light seems not help, either.
Flags: needinfo?(jmercado)
Attachment #8418127 - Attachment mime type: text/x-log → text/plain
I do not use any workloads and can reproduce this issue on a fresh flash on two separate devices that have no call history, contacts, message history, or additional apps installed.
Flags: needinfo?(jmercado)
(In reply to Jayme Mercado from comment #25)
> I do not use any workloads and can reproduce this issue on a fresh flash on
> two separate devices that have no call history, contacts, message history,
> or additional apps installed.

Could you please provide a video to see what you are doing exactly ?
Etienne was unable to reproduce this bug and I just tried myself on another Tarako and this is still unreproducible.

Thanks
In addition I can say that while the call occurs I can call my voice mail and I can switch back and forth between the two calls without any issue
QA Wanted to get a video.
Keywords: qawanted
I was unable to reproduce this issue on the latest 1.3T Tarako build.

1.3T Environmental Variables:
Device: Tarako 1.3T MOZ
BuildID: 20140507074613
Gaia: 25a17d9d7143977ea9a81ed310098e326609d248
Gecko: 06216419c171
Version: 28.1
Firmware Version: SP6821a-Gonk-4.0-4-29



I flashed to yesterday's to get another video as requested.  I hadn't noticed until after I had finished the capture that the camera had become crooked.  I can record another if necessary.

http://youtu.be/5KsUh8sfbrQ 

1.3T Environmental Variables:
Device: Tarako 1.3T MOZ
BuildID: 20140506014003
Gaia: aef737f4eae863949d4b42cd6c17339aec3a5fa0
Gecko: cd0c51278ae5
Version: 28.1
Firmware Version: sp6821a-Gonk-4.0-4-29
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
Duplicated issue to bug 1007598, we have STR w/ higher reporudce rate. Let's track it on bug 1007598.
Resolution: WORKSFORME → DUPLICATE
Duplicate of bug: 1007598
You need to log in before you can comment on or make changes to this bug.