Closed Bug 1540658 Opened 1 year ago Closed 1 year ago

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

Categories

(Core :: DOM: Web Authentication, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- unaffected
firefox66 --- unaffected
firefox67 --- unaffected
firefox68 --- fixed

People

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

References

(Regression)

Details

(Keywords: crash, intermittent-failure, regression)

Crash Data

Attachments

(1 file)

Assignee: nobody → jjones
Status: NEW → ASSIGNED
Priority: P5 → P1

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

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.

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.

Pushed by jjones@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/10f14d91c824
Web Authentication - U2FTokenManager must obey the IPC state machine r=keeler
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.