LSNG: Fix handling of directory locks invalidated during request finalization
Categories
(Core :: Storage: localStorage & sessionStorage, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox133 | --- | fixed |
People
(Reporter: janv, Assigned: janv)
References
(Blocks 1 open bug)
Details
Attachments
(4 files)
This is another edge case which is not properly handled, eventually leading to a hang.
Assignee | ||
Comment 1•2 months ago
|
||
Assignee | ||
Comment 2•2 months ago
|
||
Assignee | ||
Comment 3•2 months ago
|
||
Assignee | ||
Comment 4•2 months ago
|
||
PrepareDatastoreOp currently skips calling QuotaManager::OpenClientDirectory if
the datastore already exists (is already preloaded). This can lead to a case
when QuotaClient::AbortOperationsForLocks is not able to find a corresponding
object for invalidation (because PrepareDatastoreOp::mDirectoryLock is null),
eventually leading to a hang.
The patch changes the state machine to always start with directory opening, so
there's always a directory lock even if the datastore already has one. This
fixes the problem with potential hang and also improves overall processing
order of incoming requests.
Comment 6•2 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/de8c0a8f2cd7
https://hg.mozilla.org/mozilla-central/rev/3c5ff4e4053e
https://hg.mozilla.org/mozilla-central/rev/a51dc1d5b857
https://hg.mozilla.org/mozilla-central/rev/7d6405ffc070
Description
•