Closed
Bug 1006834
Opened 11 years ago
Closed 11 years ago
[B2G][Dialer] User cannot initiate new outbound call after terminating one line in a conference call
Categories
(Firefox OS Graveyard :: RIL, defect)
Tracking
(blocking-b2g:1.4+, b2g-v1.4 fixed, b2g-v2.0 unaffected)
RESOLVED
FIXED
| blocking-b2g | 1.4+ |
| Tracking | Status | |
|---|---|---|
| b2g-v1.4 | --- | fixed |
| b2g-v2.0 | --- | unaffected |
People
(Reporter: bzumwalt, Assigned: aknow)
Details
(Keywords: regression, Whiteboard: [p=2])
Attachments
(4 files, 4 obsolete files)
|
171.52 KB,
image/png
|
Details | |
|
281.17 KB,
text/plain
|
Details | |
|
(1.4) [final] Part 1: DOM: Handle dial error and re-order code to avoid multi-thread issue. r=hsinyi
2.26 KB,
patch
|
aknow
:
review+
|
Details | Diff | Splinter Review |
|
3.14 KB,
patch
|
aknow
:
review+
|
Details | Diff | Splinter Review |
Description:
When user is in a conference call with at least two people, having one member of the conference call hang up will prevent the user who initiated the call from making another outbound call (unable to re-initiate conference call by re-calling party that left call.)
If user attempts to initiate another call while remaining party from conference call is still connected, an error message appears, "Unable to make a phone call now - Cannot make a call. If you are already dialing, please hang up first."
Repro Steps:
1) Updated Open C to Build ID: 20140506000202
2) Launch dialer
3) Initiate outbound call to device 1
4) After call with device 1 is established, initiate call with device 2 then merge calls
5) Have device 2 disconnect from call
6) Attempt to re-initiate call to device 2
Actual:
User cannot reinitiate call to device that has left conference call.
Expected:
User can call back a device that has left existing conference call.
Environmental Variables
Device: Open_C v1.4 Mozilla RIL
Build ID: 20140506000202
Gecko: fe4080728c60
Gaia: b1242f33981024de59b8b4c26bacff8b876211b1
Platform Version: 30.0
Firmware Version: P821A10V1.0.0B06_LOG_DL
Notes:
Repro frequency: 3/3, 100%
See attached: screenshot and logcat
| Reporter | ||
Comment 1•11 years ago
|
||
| Reporter | ||
Comment 3•11 years ago
|
||
Ignore first logcat, this one has ril debugging enabled
Attachment #8418379 -
Attachment is obsolete: true
| Reporter | ||
Updated•11 years ago
|
QA Contact: bzumwalt
| Reporter | ||
Comment 4•11 years ago
|
||
Issue does NOT occur on Buri 1.4
Result: User can call back a device that has left existing conference call.
Environmental Variables:
Device: Buri v1.4 Mozilla RIL
BuildID: 20140506040204
Gaia: 4af716f09747edfbea637f5b60f7fd7d0183f19b
Gecko: 81651ad5e43c
Version: 32.0a1
Firmware Version: v1.2-device.cfg
Issue does NOT occur on 2.0 Open C
Result: User can call back a device that has left existing conference call.
Environmental Variables:
Device: Open_C v2.0 Master M-C Mozilla RIL
BuildID: 20140506040204
Gaia: 4af716f09747edfbea637f5b60f7fd7d0183f19b
Gecko: 81651ad5e43c
Version: 32.0a1
Firmware Version: P821A10V1.0.0B06_LOG_DL
| Reporter | ||
Comment 5•11 years ago
|
||
Issue does NOT occur on Open C 1.3 base image P821A10V1.0.0B06_LOG_DL
Keywords: qawanted
QA Contact: bzumwalt
Updated•11 years ago
|
Comment 6•11 years ago
|
||
Ken
Can we please look into this issue?
blocking-b2g: 1.4? → 1.4+
Flags: needinfo?(kchang)
Updated•11 years ago
|
QA Contact: jschmitt
Comment 7•11 years ago
|
||
Issue repros on the first tinderbox 1.4 Open_C build, unable to get a regression window.
1.4 Environmental Variables:
Device: Open_C 1.4
BuildID: 20140424123005
Gaia: fc95009476fac9ce205a59b237d146ca7f6f42e7
Gecko: 37237034e45c
Version: 30.0a2
Firmware Version: P821A10V1.0.0B06_LOG_DL
Keywords: regressionwindow-wanted
QA Contact: jschmitt
Comment 8•11 years ago
|
||
Aknow, please help to check this bug first. Thanks.
Assignee: nobody → szchen
Flags: needinfo?(kchang)
| Assignee | ||
Comment 9•11 years ago
|
||
We cannot find OpenC device here. It seems that the issue only happened on 1.4 Open_C build.
Doug,
Could you get an OpenC device and help us dump some log in gaia? We guess it might hit the condition here [1]. Seems there is something wrong in gecko. We need more information to dig into the problem. We would like to know the following value when condition hit.
telephony.calls.length
telephony.conferenceGroup.calls.length
Also the info of each call in |telephony.calls| and |telephony.conferenceGroup.calls|
ex: number, state.
[1] https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/telephony_helper.js#L33
Flags: needinfo?(drs+bugzilla)
Comment 10•11 years ago
|
||
(In reply to Szu-Yu Chen [:aknow] from comment #9)
> Doug,
>
> Could you get an OpenC device and help us dump some log in gaia? We guess it
> might hit the condition here [1]. Seems there is something wrong in gecko.
> We need more information to dig into the problem. We would like to know the
> following value when condition hit.
I don't have an Open C handy either. I ordered one just now, but it'll be a while before it gets to me.
(In reply to Josh Schmitt from comment #7)
> Issue repros on the first tinderbox 1.4 Open_C build, unable to get a
> regression window.
Could you explain why you couldn't determine a regression window for this? Did it just occur on every version between 1.3 and 1.4 or something? This is useful information for us.
Flags: needinfo?(jschmitt)
Comment 11•11 years ago
|
||
(In reply to Doug Sherk (:drs) from comment #10)
> (In reply to Szu-Yu Chen [:aknow] from comment #9)
> > Doug,
> >
> > Could you get an OpenC device and help us dump some log in gaia? We guess it
> > might hit the condition here [1]. Seems there is something wrong in gecko.
> > We need more information to dig into the problem. We would like to know the
> > following value when condition hit.
>
> I don't have an Open C handy either. I ordered one just now, but it'll be a
> while before it gets to me.
>
> (In reply to Josh Schmitt from comment #7)
> > Issue repros on the first tinderbox 1.4 Open_C build, unable to get a
> > regression window.
>
> Could you explain why you couldn't determine a regression window for this?
> Did it just occur on every version between 1.3 and 1.4 or something? This is
> useful information for us.
The regression likely happened before we had Flame builds on pvtbuilds. We know it doesn't reproduce on 1.3 per comment 7.
Flags: needinfo?(jschmitt)
Comment 12•11 years ago
|
||
(In reply to Szu-Yu Chen [:aknow] from comment #9)
> We cannot find OpenC device here. It seems that the issue only happened on
> 1.4 Open_C build.
FWIW - William managed to get a hold an Open C in the Taipei office. Can you work with him to debug this?
| Assignee | ||
Comment 13•11 years ago
|
||
Good. I got an Open C and and the issue is reproducible. Working on it now.
Updated•11 years ago
|
Flags: needinfo?(drs+bugzilla)
| Assignee | ||
Comment 14•11 years ago
|
||
Attachment #8420887 -
Flags: review?(htsai)
| Assignee | ||
Comment 15•11 years ago
|
||
Attachment #8420888 -
Flags: review?(htsai)
Comment 16•11 years ago
|
||
Comment on attachment 8420887 [details] [diff] [review]
Part 1: DOM: Handle dial error and re-order code to avoid multi-thread issue
Review of attachment 8420887 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/telephony/Telephony.cpp
@@ +713,5 @@
> NS_ERROR("No existing call!");
> return NS_ERROR_UNEXPECTED;
> }
>
> nsRefPtr<TelephonyCall> callToNotify = GetCall(aServiceId, aCallIndex);
We can just do this way:
callToNotify = (aCallIndex == -1) ? GetOutgoingCall()
: GetCall(aServiceId, aCallIndex);
Attachment #8420887 -
Flags: review?(htsai)
Comment 17•11 years ago
|
||
Comment on attachment 8420888 [details] [diff] [review]
Part 2: Advance the timing of dial response
Review of attachment 8420888 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good.
Attachment #8420888 -
Flags: review?(htsai) → review+
| Assignee | ||
Comment 18•11 years ago
|
||
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #16)
> Comment on attachment 8420887 [details] [diff] [review]
> Part 1: DOM: Handle dial error and re-order code to avoid multi-thread issue
>
> Review of attachment 8420887 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: dom/telephony/Telephony.cpp
> @@ +713,5 @@
> > NS_ERROR("No existing call!");
> > return NS_ERROR_UNEXPECTED;
> > }
> >
> > nsRefPtr<TelephonyCall> callToNotify = GetCall(aServiceId, aCallIndex);
>
> We can just do this way:
>
> callToNotify = (aCallIndex == -1) ? GetOutgoingCall()
> : GetCall(aServiceId, aCallIndex);
'callError' is a broadcast message to all telephony objects. Only the telephony which dial out the call could find it from GetOutgoingCall(). For other telephony objects, they will get nothing.
Comment 19•11 years ago
|
||
Comment on attachment 8420887 [details] [diff] [review]
Part 1: DOM: Handle dial error and re-order code to avoid multi-thread issue
Review of attachment 8420887 [details] [diff] [review]:
-----------------------------------------------------------------
r=me with comment addressed.
::: dom/telephony/Telephony.cpp
@@ +698,5 @@
> Telephony::NotifyError(uint32_t aServiceId,
> int32_t aCallIndex,
> const nsAString& aError)
> {
> + // Special handle for dial failure.
I understood your idea which makes sense! Please describe your thought about "why" do we have this special handler, and leave a comment here.
@@ +702,5 @@
> + // Special handle for dial failure.
> + if (aCallIndex == -1) {
> + nsRefPtr<TelephonyCall> call = GetOutgoingCall();
> + if (call) {
> + UpdateActiveCall(call, false);
We don't need this. updateActiveCall will be called in removeCall().
Attachment #8420887 -
Flags: review+
| Assignee | ||
Comment 20•11 years ago
|
||
Attachment #8420887 -
Attachment is obsolete: true
Attachment #8421478 -
Flags: review?(htsai)
Comment 21•11 years ago
|
||
Comment on attachment 8421478 [details] [diff] [review]
Part 1#2: DOM: Handle dial error and re-order code to avoid multi-thread issue
Review of attachment 8421478 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good, thanks!
::: dom/telephony/Telephony.cpp
@@ +698,5 @@
> Telephony::NotifyError(uint32_t aServiceId,
> int32_t aCallIndex,
> const nsAString& aError)
> {
> + // Special handle for dial failure.
nit: s/handle/handler ?
Attachment #8421478 -
Flags: review?(htsai) → review+
| Assignee | ||
Comment 22•11 years ago
|
||
Attachment #8421478 -
Attachment is obsolete: true
Attachment #8421550 -
Flags: review+
| Assignee | ||
Comment 23•11 years ago
|
||
Attachment #8420888 -
Attachment is obsolete: true
Attachment #8421551 -
Flags: review+
| Assignee | ||
Comment 24•11 years ago
|
||
Keywords: checkin-needed
Updated•11 years ago
|
status-b2g-v1.4:
--- → affected
status-b2g-v2.0:
--- → unaffected
Comment 25•11 years ago
|
||
https://hg.mozilla.org/releases/mozilla-b2g30_v1_4/rev/687708c94064
https://hg.mozilla.org/releases/mozilla-b2g30_v1_4/rev/5dded726837c
| Assignee | ||
Updated•11 years ago
|
Whiteboard: [p=2]
You need to log in
before you can comment on or make changes to this bug.
Description
•