Intermittent dom/webauthn/tests/browser/browser_abort_visibility.js | application crashed [@ MOZ_Crash(char const*, int, char const*)]

RESOLVED FIXED in Firefox 68

Status

()

defect
P1
critical
RESOLVED FIXED
3 months ago
2 months ago

People

(Reporter: intermittent-bug-filer, Assigned: jcj)

Tracking

(Regression, {crash, intermittent-failure, regression})

unspecified
mozilla68
Points:
---

Firefox Tracking Flags

(firefox-esr60 unaffected, firefox66 unaffected, firefox67 unaffected, firefox68 fixed)

Details

(crash signature)

Attachments

(1 attachment)

Assignee

Updated

3 months ago
See Also: → 1540378
Assignee

Comment 1

3 months ago
Assignee: nobody → jjones
Status: NEW → ASSIGNED
Priority: P5 → P1
Assignee

Updated

3 months ago
Depends on: 1448408
Assignee

Comment 2

3 months ago

This was introduced by this change:
https://hg.mozilla.org/mozilla-central/rev/f7937d3264db#l5.17

Specifically, calling SendAbort during ClearTransaction is expedient, but it's got edge cases I didn't see during testing - during tab closures, for example, it appears to race the state machine about whether mTransactionParent remains alive long enough to send the abort.

So that's not the right way to handle this. It needs to move somewhere else, I think.

See Also: 15403781540377
Assignee

Comment 3

3 months ago

I see what's happening.

WebAuthnTransactionParent::ActorDestroy is called at the conclusion of IPC shutdown, for whatever reason. That calls MaybeClearTransaction in U2FTokenManager, which calls ClearTransaction, which then tries to send an Abort.

Unlike what's going on in Bug 1540378, this bug is new, just straight-up a bug in my visibility changes from bug 1448408.

Assignee

Comment 4

3 months ago

In Bug 1448408 ("Don't listen to visibility events"), I changed U2FTokenManager:: ClearTransaction to send aborts, to handle the new visibility states. However,

WebAuthnTransactionParent::ActorDestroy is called at the conclusion of IPC
shutdown, which calls MaybeClearTransaction in U2FTokenManager, which calls
ClearTransaction, which then tries to send an Abort, which is a state machine
failure since we just shut the IPC down.

This patch creates a new AbortOngoingTransaction method which is used
to send the aborts instead of shoehorning that into ClearTransaction, reverting
ClearTransaction back to the prior form, and instead changes Register and
Sign to call the new method.

Comment hidden (Intermittent Failures Robot)
Assignee

Updated

3 months ago
See Also: → 1540938
Assignee

Updated

3 months ago
Duplicate of this bug: 1540938
Assignee

Updated

3 months ago
Duplicate of this bug: 1540376
Assignee

Updated

3 months ago
See Also: → 1540942

Comment 8

3 months ago
Pushed by jjones@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/10f14d91c824
Web Authentication - U2FTokenManager must obey the IPC state machine r=keeler

Comment 9

2 months ago
bugherder
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Comment hidden (Intermittent Failures Robot)
Assignee

Updated

2 months ago
Duplicate of this bug: 1540942
Assignee

Updated

2 months ago
Duplicate of this bug: 1540377
Comment hidden (Intermittent Failures Robot)
You need to log in before you can comment on or make changes to this bug.