Closed
Bug 1169994
Opened 10 years ago
Closed 10 years ago
DOM cache may unregister offline storage too soon
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
mozilla41
| Tracking | Status | |
|---|---|---|
| firefox41 | --- | fixed |
People
(Reporter: janv, Assigned: bkelly)
Details
Attachments
(2 files)
|
742 bytes,
patch
|
Details | Diff | Splinter Review | |
|
2.19 KB,
patch
|
ehsan.akhgari
:
review+
|
Details | Diff | Splinter Review |
After the vacuum stuff landed, closing of storage connections takes a bit more time. This causes that my directory lock stuff doesn't pass tests anymore. I investigated the issues a bit and I believe the offline storage is unregistered too soon. The same issue arises on current m-c when I artificially slowdown the closing even more (see the patch).
Steps to reproduce:
1. apply the slowdown patch
2. run ./mach mochitest-plain dom/cache dom/indexedDB
3. see the assertion in OriginInfo::~OriginInfo
I think Context::~Context should do a better job and release mOfflineStorage when the connection actually finished the closing procedure.
| Reporter | ||
Comment 1•10 years ago
|
||
The assertion in OriginInfo destructor means that QM deleted an origin that still has live quota objects. I verified that these quota objects belong to cache.sqlite and cache.sqlite-wal
| Assignee | ||
Comment 2•10 years ago
|
||
Please post the patch that enables your directory locking. The ~Context() destructor should not run while the Connection is executing on the IO thread.
| Assignee | ||
Updated•10 years ago
|
Flags: needinfo?(Jan.Varga)
| Assignee | ||
Comment 3•10 years ago
|
||
Oh, I see. It happens without your patch. Let me look.
Flags: needinfo?(Jan.Varga)
| Assignee | ||
Updated•10 years ago
|
Assignee: nobody → bkelly
Status: NEW → ASSIGNED
| Assignee | ||
Comment 4•10 years ago
|
||
Shorter set of tests to run to trigger:
./mach mochitest dom/cache/test/mochitest/test_caches.html dom/indexedDB/test/test_add_put.html
| Reporter | ||
Comment 5•10 years ago
|
||
(In reply to Ben Kelly [:bkelly] from comment #4)
> Shorter set of tests to run to trigger:
>
> ./mach mochitest dom/cache/test/mochitest/test_caches.html
> dom/indexedDB/test/test_add_put.html
Yeah, that narrows it down even more.
| Assignee | ||
Comment 6•10 years ago
|
||
The Context's QuotaInitRunnable was not dropping its mData ref on the target thread. This resulted in the connection getting proxy released when the init was canceled.
This patch fixes the runnable to drop the ref correctly. I also changed the proxy release to a thread assert.
Attachment #8616907 -
Flags: review?(ehsan)
| Assignee | ||
Comment 7•10 years ago
|
||
Updated•10 years ago
|
Attachment #8616907 -
Flags: review?(ehsan) → review+
| Assignee | ||
Comment 8•10 years ago
|
||
New try since the outage caused the last to fail:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=474b3eaf4093
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Updated•7 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•