Bug 134939

Summary: IDB transaction requests may get discarded if a request is currently being processed
Product: WebKit Reporter: Vicki Pfau <jeffrey+webkit>
Component: WebKit2Assignee: Vicki Pfau <jeffrey+webkit>
Status: ASSIGNED ---    
Severity: Normal CC: beidson
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
WIP patch
none
WIP patch v2
none
Patch v3 none

Description Vicki Pfau 2014-07-15 13:57:24 PDT
With the WebKit2 UniqueIDBDatabase backing, transaction requests may be discarded if another request for the same transaction is currently in progress. This can cause serious problems, depending on the request that gets discarded.

<rdar://problem/17356958>
Comment 1 Vicki Pfau 2014-07-15 13:59:45 PDT
Created attachment 234948 [details]
WIP patch

Attached a WIP patch that can cause several layout tests to regress, with what appear to be race condition-based failures.
Comment 2 Vicki Pfau 2014-07-22 17:19:19 PDT
Created attachment 235329 [details]
WIP patch v2

As it turns out, almost all of the operations are already queued within the web process. This version of the patch queues up the few remaining tasks, but there are some issues caused by this that aren't yet fixed, so this patch isn't ready for review.
Comment 3 Vicki Pfau 2014-08-06 12:50:50 PDT
Created attachment 236126 [details]
Patch v3

Here's a newer version of the patch. It still causes 4 layout tests to fail, and is getting increasingly more detailed in how it works, but I think I'm getting closer to a proper fix.