Closed Bug 1735191 Opened 2 years ago Closed 8 months ago

Intermittent Assertion failure: mReadyState == ReadyState::Finished, at /builds/worker/checkouts/gecko/dom/indexedDB/IDBTransaction.cpp:135

Categories

(Core :: Storage: IndexedDB, defect, P3)

defect

Tracking

()

RESOLVED FIXED
105 Branch
Tracking Status
firefox-esr91 --- wontfix
firefox-esr102 --- wontfix
firefox97 --- wontfix
firefox103 --- wontfix
firefox104 --- wontfix
firefox105 --- fixed

People

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

References

(Blocks 1 open bug)

Details

(Keywords: assertion, intermittent-failure)

Crash Data

Attachments

(2 files)

Filed by: mlaza [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=354384027&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/FUCxPSUJQk6H9DxvQMblNA/runs/0/artifacts/public/logs/live_backing.log


[task 2021-10-11T16:33:37.156Z] 16:33:37     INFO -  TEST-START | xpcshell-child-process.ini:dom/indexedDB/test/unit/test_clear.js
[task 2021-10-11T16:38:37.172Z] 16:38:37  WARNING -  TEST-UNEXPECTED-TIMEOUT | xpcshell-child-process.ini:dom/indexedDB/test/unit/test_clear.js | Test timed out
[task 2021-10-11T16:38:37.173Z] 16:38:37     INFO -  TEST-INFO took 300016ms
[task 2021-10-11T16:38:37.173Z] 16:38:37     INFO -  >>>>>>>
[task 2021-10-11T16:38:37.173Z] 16:38:37     INFO -  PID 10364 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2021-10-11T16:38:37.174Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Failed to get directory to cache.: file /builds/worker/checkouts/gecko/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp:119
[task 2021-10-11T16:38:37.174Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Failed to get directory to cache.: file /builds/worker/checkouts/gecko/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp:119
[task 2021-10-11T16:38:37.175Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Failed to get directory to cache.: file /builds/worker/checkouts/gecko/security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp:119
[task 2021-10-11T16:38:37.175Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp:2964
[task 2021-10-11T16:38:37.176Z] 16:38:37     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2021-10-11T16:38:37.176Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Couldn't get the user appdata directory, crash dumps will go in an unusual location: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp:3023
[task 2021-10-11T16:38:37.177Z] 16:38:37     INFO -  PID 10364 | JavaScript error: Z:\task_163396646136574\build\tests\xpcshell\head.js, line 333: NS_NOINTERFACE:
[task 2021-10-11T16:38:37.177Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, Main Thread] WARNING: Unknown color for nsLookAndFeel: file /builds/worker/checkouts/gecko/widget/windows/nsLookAndFeel.cpp:357
...
[task 2021-10-11T16:38:37.219Z] 16:38:37     INFO -  (xpcshell/head.js) | test finished (2)
[task 2021-10-11T16:38:37.219Z] 16:38:37     INFO -  TEST-PASS | xpcshell-child-process.ini:dom/indexedDB/test/unit/test_clear.js | isnot - [isnot : 30] Got a different key - 1001 != 1
[task 2021-10-11T16:38:37.220Z] 16:38:37     INFO -  (xpcshell/head.js) | test pending (2)
[task 2021-10-11T16:38:37.220Z] 16:38:37     INFO -  (xpcshell/head.js) | test finished (2)
[task 2021-10-11T16:38:37.220Z] 16:38:37     INFO -  (xpcshell/head.js) | test finished (1)
[task 2021-10-11T16:38:37.220Z] 16:38:37     INFO -  exiting test
[task 2021-10-11T16:38:37.221Z] 16:38:37     INFO -  CHILD-TEST-COMPLETED
[task 2021-10-11T16:38:37.221Z] 16:38:37     INFO -  (xpcshell/head.js) | test finished (1)
[task 2021-10-11T16:38:37.221Z] 16:38:37     INFO -  exiting test
[task 2021-10-11T16:38:37.221Z] 16:38:37     INFO -  "CONSOLE_MESSAGE: (error) [JavaScript Error: "IndexedDB UnknownErr: ActorsParent.cpp:9549"]"
[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: cache: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: sdb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: ls: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | Assertion failure: mReadyState == ReadyState::Finished, at /builds/worker/checkouts/gecko/dom/indexedDB/IDBTransaction.cpp:135
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: cache: '0.047000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: sdb: '0.063000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: ls: '0.063000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.227Z] 16:38:37     INFO -  PID 10364 | ###!!! [Child][MessageChannel] Error: (msgtype=0xAD0018,name=PWindowGlobal::Msg_UpdateDocumentHasLoaded) Channel closing: too late to send/recv, messages will be lost
[task 2021-10-11T16:38:37.227Z] 16:38:37     INFO -  PID 10364 | ###!!! [Child][MessageChannel] Error: (msgtype=0xAD0030,name=PWindowGlobal::Msg_Destroy) Channel closing: too late to send/recv, messages will be lost
[task 2021-10-11T16:38:37.272Z] 16:38:37     INFO -  Initializing stack-fixing for the first stack frame, this may take a while...
[task 2021-10-11T16:38:46.955Z] 16:38:46     INFO -  PID 10364 | #01: mozilla::dom::IDBTransaction::~IDBTransaction() [dom/indexedDB/IDBTransaction.cpp:135]
[task 2021-10-11T16:38:46.961Z] 16:38:46     INFO -  PID 10364 | #02: mozilla::dom::IDBTransaction::~IDBTransaction() [dom/indexedDB/IDBTransaction.cpp:132]
[task 2021-10-11T16:38:46.961Z] 16:38:46     INFO -  PID 10364 | #03: SnowWhiteKiller::MaybeKillObject(SnowWhiteKiller::SnowWhiteObject&) [xpcom/base/nsCycleCollector.cpp:2428]
[task 2021-10-11T16:38:46.962Z] 16:38:46     INFO -  PID 10364 | #04: SnowWhiteKiller::~SnowWhiteKiller() [xpcom/base/nsCycleCollector.cpp:2413]
[task 2021-10-11T16:38:46.962Z] 16:38:46     INFO -  PID 10364 | #05: nsCycleCollector::FreeSnowWhite(bool) [xpcom/base/nsCycleCollector.cpp:2600]
[task 2021-10-11T16:38:46.963Z] 16:38:46     INFO -  PID 10364 | #06: nsCycleCollector::BeginCollection(ccType, nsICycleCollectorListener*) [xpcom/base/nsCycleCollector.cpp:3586]
[task 2021-10-11T16:38:46.963Z] 16:38:46     INFO -  PID 10364 | #07: nsCycleCollector::Collect(ccType, js::SliceBudget&, nsICycleCollectorListener*, bool) [xpcom/base/nsCycleCollector.cpp:3407]
[task 2021-10-11T16:38:46.963Z] 16:38:46     INFO -  PID 10364 | #08: nsCycleCollector::ShutdownCollect() [xpcom/base/nsCycleCollector.cpp:3350]
[task 2021-10-11T16:38:46.964Z] 16:38:46     INFO -  PID 10364 | #09: nsCycleCollector::Shutdown(bool) [xpcom/base/nsCycleCollector.cpp:3647]
[task 2021-10-11T16:38:46.964Z] 16:38:46     INFO -  PID 10364 | #10: nsCycleCollector_shutdown(bool) [xpcom/base/nsCycleCollector.cpp:3960]
[task 2021-10-11T16:38:46.964Z] 16:38:46     INFO -  PID 10364 | #11: mozilla::ShutdownXPCOM(nsIServiceManager*) [xpcom/build/XPCOMInit.cpp:713]
[task 2021-10-11T16:38:46.964Z] 16:38:46     INFO -  PID 10364 | #12: XRE_TermEmbedding() [toolkit/xre/nsEmbedFunctions.cpp:219]
[task 2021-10-11T16:38:46.965Z] 16:38:46     INFO -  PID 10364 | #13: mozilla::ipc::ScopedXREEmbed::Stop() [ipc/glue/ScopedXREEmbed.cpp:91]
[task 2021-10-11T16:38:46.965Z] 16:38:46     INFO -  PID 10364 | #14: XRE_InitChildProcess(int, char**, XREChildData const*) [toolkit/xre/nsEmbedFunctions.cpp:754]
[task 2021-10-11T16:38:47.009Z] 16:38:47     INFO -  PID 10364 | #15: NS_internal_main(int, char**) [ipc/app/MozillaRuntimeMain.cpp:72]
[task 2021-10-11T16:38:47.011Z] 16:38:47     INFO -  PID 10364 | #16: wmain(int, wchar_t**) [toolkit/xre/nsWindowsWMain.cpp:127]
[task 2021-10-11T16:38:47.011Z] 16:38:47     INFO -  PID 10364 | #17: __scrt_common_main_seh() [/builds/worker/workspace/obj-build/ipc/app/d:/agent/_work/1/s/src/vctools/crt/vcstartup/src/startup/exe_common.inl:288]
[task 2021-10-11T16:38:47.016Z] 16:38:47     INFO -  fix-stacks: error: failed to read debug info file `wkernel32.pdb` for `C:\Windows\System32\KERNEL32.DLL`
[task 2021-10-11T16:38:47.017Z] 16:38:47     INFO -  fix-stacks: note: this is expected and harmless for all PDB files on opt automation runs
[task 2021-10-11T16:38:47.017Z] 16:38:47     INFO -  fix-stacks: The system cannot find the file specified. (os error 2)
[task 2021-10-11T16:38:47.017Z] 16:38:47     INFO -  PID 10364 | #18: BaseThreadInitThunk [C:\Windows\System32\KERNEL32.DLL + 0x17034]
[task 2021-10-11T16:38:47.025Z] 16:38:47     INFO -  fix-stacks: error: failed to read debug info file `wntdll.pdb` for `C:\Windows\SYSTEM32\ntdll.dll`

Not sure if all of this is relevant, but I see in the log:

[task 2021-10-11T16:38:37.221Z] 16:38:37     INFO -  "CONSOLE_MESSAGE: (error) [JavaScript Error: "IndexedDB UnknownErr: ActorsParent.cpp:9549"]"

coming from Database::InvalidateAll. It seems, IDB_REPORT_INTERNAL_ERR(); is called always there (if there was something to abort)? That feels weird. In any case we seem to abort a transaction before we enter QM shutdown (see messages below).

In fact the next messages talk about starting QM shutdown:

[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: cache: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.222Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: sdb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: ls: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788

Then we find 4 anonymous IPC message discarded events:

[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.223Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527
[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | [Child 8476, Main Thread] WARNING: IPC message discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:527

followed by the assertion and the successful finish of the QM shutdown (which probably happened earlier but the log message order is wrong?)

[task 2021-10-11T16:38:37.224Z] 16:38:37     INFO -  PID 10364 | Assertion failure: mReadyState == ReadyState::Finished, at /builds/worker/checkouts/gecko/dom/indexedDB/IDBTransaction.cpp:135
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.225Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: idb: '0.047000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: cache: '0.047000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: sdb: '0.063000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788
[task 2021-10-11T16:38:37.226Z] 16:38:37     INFO -  PID 10364 | [Parent 10364, IPDL Background] WARNING: ls: '0.063000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3788

My guess would be that we miss some mReadyState transition to Finished while we abort a transaction. FWIW, we do not touch mReadyState during abort if the transaction is already comitting.

Severity: S4 → S3
Priority: P5 → P3
Flags: needinfo?(jvarga)

Hi Jari, maybe you can take a look?

Flags: needinfo?(jvarga) → needinfo?(jjalkanen)

Sure thing, seems to be connected to 1682326

Assignee: nobody → jjalkanen
Flags: needinfo?(jjalkanen)

(In reply to Tyson Smith [:tsmith] from comment #12)

A Pernosco session is available here: https://pernos.co/debug/8Th8dozN3so2N1D464m3uw/index.html

From the pernosco session it seems we are in a situation where a transaction object that lives in a content process wants to do IDBTransaction::OnRequestFinished called by BackgroundRequestChild::ActorDestroy with the ActorDestroyReason "NormalShutdown".

I assume we want to just fake a closed (aborted) transaction in that case but fail to set the correct mReadyState (most probably only relevant for the assertion).

Hi Jari, I was just curious and had a look at the pernosco session. Once I understood the fix seemed easy enough to just do it right away, sorry for interfering if you were already looking at this, too.

Attachment #9259102 - Attachment description: Bug 1735191: Transition IDBTransaction to Finished state on actor abort. r?#dom-storage-reviewers → Bug 1735191: Transition IDBTransaction to Finished state on actor abort and failed creation. r?#dom-storage-reviewers

Though the pernosco case is hopefully solved with that patch, there might be other possibilities to end up with that assertion, so let's keep this open for monitoring.

Keywords: leave-open
Assignee: jjalkanen → nobody
Assignee: nobody → jstutte
Pushed by jstutte@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ac8acaee3139
Transition IDBTransaction to Finished state on actor abort and failed creation. r=dom-storage-reviewers,jari

The bot will do the monitoring for us.

Keywords: leave-open
Crash Signature: [@ mozilla::dom::IDBTransaction::~IDBTransaction()]

(In reply to Jens Stutte [:jstutte] from comment #17)

Though the pernosco case is hopefully solved with that patch, there might be other possibilities to end up with that assertion, so let's keep this open for monitoring.

So the remaining cases seem all to happen as late as nsCycleCollector_shutdown(shutdownCollect);. If we get there, quota manager is long shut down so I am a bit puzzled we still see some referenced IDBTransaction in such a late stage.

What we seem to know:

  • this IDBTransaction instance was part of a reference cycle
  • it was not in ReadyState::Finished
  • this reference cycle survived until the latest possible cycle collection

What we do not know:

  • which state the transaction was in
  • which other objects built that cycle
  • what kept this cycle alive - or did we just not CC earlier?

Olli, do you happen to know if there are other (earlier) moments we force a CC during shutdown? Not that it would help here, but in general it seems wrong that we try to free objects whose owning threads might be potentially long gone such late...

Flags: needinfo?(bugs)

Jens, IDBTransaction is a content process only object. It can be kept alive from JavaScript even though its actor has been destroyed.

QuotaManager is a parent process only object.

(In reply to Jan Varga [:janv] from comment #31)

Jens, IDBTransaction is a content process only object. It can be kept alive from JavaScript even though its actor has been destroyed.

Thanks for the hint, actually what we have here is failing XPCSHELL tests shutdown where we execute JS in the parent process, IIUC. In fact the PID of the asserting process is marked as parent process here.

Could it be that we create a reference cycle when we use IDB within the parent process (as in XPCSHELL tests) that otherwise will never exist?

(In reply to Jens Stutte [:jstutte] from comment #30)

Olli, do you happen to know if there are other (earlier) moments we force a CC during shutdown? Not that it would help here, but in general it seems wrong that we try to free objects whose owning threads might be potentially long gone such late...

I assume that what's happening during XPCSHELL tests at shutdown might be quite different from normal operations here and thus I can imagine that in this case we CC less often or even never until the last CC during shutdown?

Even xpcshell tests can run in parent/child mode and the log from comment 0 indicates, that's the case (note xpcshell-child-process.ini in the log)
The message in the log you are referring to is missing the second process number I guess.

Probably we might just want to wait for bug 1757144 to land to see if it helps here to some extent.

Flags: needinfo?(bugs)

The log file shows an interesting detail:

[task 2022-05-28T11:32:51.182Z] 11:32:51     INFO -  "CONSOLE_MESSAGE: (error) [JavaScript Error: "IndexedDB UnknownErr: ActorsParent.cpp:9536"]"
[task 2022-05-28T11:32:51.182Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: quota manager shutdown step: '0.000000s: startCrashBrowserTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
[task 2022-05-28T11:32:51.183Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: idb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
[task 2022-05-28T11:32:51.184Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: quota manager shutdown step: '0.000000s: startKillActorsTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
[task 2022-05-28T11:32:51.186Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: idb: '0.016000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
[task 2022-05-28T11:32:51.186Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: idb: '0.016000s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
[task 2022-05-28T11:32:51.187Z] 11:32:51     INFO -  PID 13656 | [Parent 13656, IPDL Background] WARNING: idb: '0.016000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
stopCrashBrowserTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3808
...
[task 2022-05-28T11:32:51.191Z] 11:32:51     INFO -  PID 13656 | Assertion failure: mReadyState == ReadyState::Finished, at /builds/worker/checkouts/gecko/dom/indexedDB/IDBTransaction.cpp:135

The first line points to Database::InvalidateAll which probably invalidates a transaction before we enter shutdown. IIUC TransactionBase::Invalidate does not care about mReadyState - should it ?

Flags: needinfo?(jvarga)

Asserting invalid values identifies the missing state transition.

Pushed by jjalkanen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2950f06bee91
Assert current transaction state is not invalid. r=smaug
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → 105 Branch

Looks like there's been a couple instances on autoland since the patch landed with ReadyState::Committing as the assert instead.

See Also: → 1785080
You need to log in before you can comment on or make changes to this bug.