BluetoothHandsfreeResultHandler, void>::~BluetoothHALInterfaceRunnable0() - Device crashes when connecting to a bluetooth headset or speaker device.

VERIFIED FIXED in Firefox 39

Status

defect
--
critical
VERIFIED FIXED
4 years ago
4 years ago

People

(Reporter: Marty, Assigned: tzimmermann)

Tracking

({crash, regression, smoketest})

unspecified
2.2 S8 (20mar)
All
Android

Firefox Tracking Flags

(blocking-b2g:2.2+, firefox37 wontfix, firefox38 wontfix, firefox39 fixed, b2g-v2.2 fixed, b2g-master verified)

Details

(Whiteboard: [3.0-Daily-Testing][backout-asap], crash signature, URL)

Attachments

(5 attachments)

(Reporter)

Description

4 years ago
BluetoothHandsfreeResultHandler, void>::~BluetoothHALInterfaceRunnable0() | mozilla::dom::bluetooth::BluetoothHALInterfaceRunnable0<mozilla::dom::bluetooth::Bcrash in @0x0 | mozilla::dom::bluetooth::BluetoothHALInterfaceRunnable0<mozilla::dom::bluetooth::

This bug was filed from the Socorro interface and is 
report bp-c8be5926-29ca-498a-b6d1-7ae1e2150311.
=============================================================

Description:
Connecting the device to a bluetooth headset or speaker will cause the phone to crash and restart.

The phone is able to pair with these devices, but crashes when trying to connect.

Repro Steps:
1) Update a Flame to 20150311010231
2) Open the Settings app and enable bluetooth
3) Pair and connect the phone with a bluetooth headset or speaker

Actual:
Phone crashes and restarts when connecting to the device.

Expected:
The phone connects properly to the bluetooth device.

Environmental Variables:
Device: Flame 3.0 (319MB)(Full Flash)
Build ID: 20150311010231
Gaia: 943c8b4039f59b08ba100390e164a076a20c892e
Gecko: fd8e079d6335
Gonk: ebad7da532429a6f5efadc00bf6ad8a41288a429
Version: 39.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0

Repro frequency: 8/8
Link to failed test case: https://moztrap.mozilla.org/manage/case/6070/
See attached: logcat, video (URL)
(Reporter)

Comment 1

4 years ago
This issue does NOT occur on Flame 2.2.
The phone connects properly to the bluetooth device.

Environmental Variables:
Device: Flame 2.2 (319MB)(Full Flash)
Build ID: 20150311002522
Gaia: 3f032238a52f08e4c2f68a47ad065a96eb22d470
Gecko: 004fa1cb1dd4
Gonk: ebad7da532429a6f5efadc00bf6ad8a41288a429
Version: 37.0 (2.2)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
[Blocking Requested - why for this release]:
Functional Regression for a core feature that fails smoketest.

Requesting a window.
blocking-b2g: --- → 3.0?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
QA Contact: pcheng
b2g-inbound regression window:

Last Working Environmental Variables:
Device: Flame
BuildID: 20150310043519
Gaia: 63737c8d053bcbccf58d34dc5586e9d7f1d3d63f
Gecko: f481ba01e113
Version: 39.0a1 (3.0 Master)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0

First Broken Environmental Variables:
Device: Flame
BuildID: 20150310055522
Gaia: 63737c8d053bcbccf58d34dc5586e9d7f1d3d63f
Gecko: f0e9898a7604
Version: 39.0a1 (3.0 Master)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0

Gaia is the same so it's a Gecko issue.

Gecko pushlog:
http://hg.mozilla.org/integration/b2g-inbound/pushloghtml?fromchange=f481ba01e113&tochange=f0e9898a7604

Caused by patches for Bug 1137151.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Thomas, can you take a look at this? Looks like the cause is the landing for bug 1137151. This is a smoketest blocker. Can we get this backed out?
Flags: needinfo?(ktucker) → needinfo?(tzimmermann)
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Whiteboard: [3.0-Daily-Testing] → [3.0-Daily-Testing][backout-asap]
Ah, this fails because of Bug 1139987.  Didn't know there are test scripts actually look for the status bar info.
Depends on: 1139987
(In reply to No-Jun Park [:njpark] from comment #7)
> Ah, this fails because of Bug 1139987.  Didn't know there are test scripts
> actually look for the status bar info.

Sorry, wrong bug - please disregard
No longer depends on: 1139987
nhirata, did a local backout of https://hg.mozilla.org/mozilla-central/rev/d645da56de29 and his own build to verify smoketest around bluetooth work after this backout and we are good to go with backing this rev from his end
Resolved by backout.
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Adding qawanted to verify on next available nightly.
QA Contact: pcheng
The backout push broke ICS emulator builds:
https://treeherder.mozilla.org/logviewer.html#?job_id=1150744&repo=mozilla-central

So I backed out the backout in https://hg.mozilla.org/mozilla-central/rev/e1262bdb5b14
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Seems like there's still more that we have to backout with destructors and such.  Lessons learned; we probably need to push to try as well.
Backout patch to back out:
d5e5fcb29452
d645da56de29
Assignee: nobody → tzimmermann
Status: REOPENED → ASSIGNED
Flags: needinfo?(tzimmermann)
This bug is yet another instance of the symbol-collision problem that we've seen several times before. Shawn, is a smoke-test blocker. Can you give some priority to the review? Thanks!
Attachment #8576597 - Flags: review?(shuang)
Comment on attachment 8576598 [details] [diff] [review]
[02] Bug 1142132: Move helper classes of A2DP manager into manager's namespace

Review of attachment 8576598 [details] [diff] [review]:
-----------------------------------------------------------------

r=me
Attachment #8576598 - Flags: review?(shuang) → review+
Comment on attachment 8576597 [details] [diff] [review]
[01] Bug 1142132: Move helper classes of HFP manager into manager's namespace

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 

Bug 1005934

User impact if declined: 

Undefined behavior of the b2g process. Can also crash.

Testing completed: 

I locally tested by performing the STR.

Risk to taking this patch (and alternatives if risky): 

Small. The code is the same as before and the patches only 'rename' some of the C++ symbols by moving class declarations to other namespaces.

String or UUID changes made by this patch:

None
Attachment #8576597 - Flags: approval-mozilla-b2g37?
Comment on attachment 8576598 [details] [diff] [review]
[02] Bug 1142132: Move helper classes of A2DP manager into manager's namespace

[Approval Request Comment]

Please see comment 20.
Attachment #8576598 - Flags: approval-mozilla-b2g37?
Comment on attachment 8576599 [details] [diff] [review]
[03] Bug 1142132: Move helper classes of OPP manager into manager's namespace

[Approval Request Comment]

Please see comment 20.
Attachment #8576599 - Flags: approval-mozilla-b2g37?
Blocks: 1142160
https://hg.mozilla.org/mozilla-central/rev/2587c1af2ce0
https://hg.mozilla.org/mozilla-central/rev/68288ae86454
https://hg.mozilla.org/mozilla-central/rev/a7cb28e7abbd
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 2.2 S8 (20mar)
Tested the patch, it pairs/unpairs/re-pairs normally, and works well with the phone/music app.
(Reporter)

Comment 27

4 years ago
This issue is Verified Fixed on Flame 3.0.
Bluetooth devices are able to successfully pair and connect to the device.

Environmental Variables:
Device: Flame 3.0 (319MB)(Full Flash)
Build ID: 20150313010238
Gaia: eabe35cf054d47087b37c1ca7db8143717fbd7f3
Gecko: 42afc7ef5ccb
Gonk: ebad7da532429a6f5efadc00bf6ad8a41288a429
Version: 39.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(pbylenga)
tdz, staus-2.2 is unaffected here so not sure why we need to uplift to b2g37, am i missing something?
(In reply to bhavana bajaj [:bajaj] from comment #28)
> tdz, staus-2.2 is unaffected here so not sure why we need to uplift to
> b2g37, am i missing something?

This bug is an issue with the C++ linker, which cannot detect if two C++ classes classes of the same name are really the same implementation. So it picks one and throws away the other; even if the classes are not the same. The result is undefined.

The patch that made the bug visible is actually completely unrelated to the problem. Next time we add a patch to Bluetooth on v2.2, we could trigger the issue again. So I thought it makes sense to uplift these patches into v2.2.
blocking-b2g: 3.0? → 2.2?
blocking-b2g: 2.2? → 2.2+
Attachment #8576597 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
Attachment #8576598 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
Attachment #8576599 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
(In reply to bhavana bajaj [:bajaj] from comment #28)
> tdz, staus-2.2 is unaffected here so not sure why we need to uplift to
> b2g37, am i missing something?

Also a good way to make sure that the bug is invisible to the "needs uplift" queries.

https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/07cc117f1319
https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/aebe8488986e
https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/3fac93f8276b
You need to log in before you can comment on or make changes to this bug.