Closed Bug 1540658 Opened 6 years ago Closed 6 years 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)

See Also: → 1540378
Assignee: nobody → jjones
Status: NEW → ASSIGNED
Priority: P5 → P1
Depends on: 1448408

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.

See Also: → 1540938
See Also: → 1540942
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: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: