Summary: | [V8] Pending indexed db transactions cancelled to aggressively at script exit | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Nate Chapin <japhet> | ||||||||||
Component: | WebCore Misc. | Assignee: | Nate Chapin <japhet> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | abarth, dgrogan, hans, webkit.review.bot | ||||||||||
Priority: | P2 | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Attachments: |
|
Description
Nate Chapin
2011-07-14 12:55:27 PDT
Created attachment 100851 [details]
patch
I haven't figured out a good way to isolate the test case as of yet, so no layout test included. Assistance welcome :)
Attachment 100851 [details] did not pass style-queue:
Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/bindings/v8/V8Proxy.cpp:617: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5]
Total errors found: 1 in 2 files
If any of these errors are false positives, please file a bug against check-webkit-style.
You should be able to trigger this case by using dispatchEvent to call an event handler synchronously. That will enter/leave a nested V8 context, which you can observe to cancel your IDB transaction. (The patch looks correct, BTW, but it might be worth trying a test along those lines.) Comment on attachment 100851 [details]
patch
Clearing the review flag while you investigate a test.
Created attachment 101036 [details]
fix style issue + test
Thanks for the test suggestion....I was having a brain cramp on how to guarantee we had a recursive JS call.
Comment on attachment 101036 [details] fix style issue + test View in context: https://bugs.webkit.org/attachment.cgi?id=101036&action=review Thanks a lot for picking this up. > LayoutTests/storage/indexeddb/transaction-abort-with-js-recursion.html:26 > + request = evalAndLog("webkitIndexedDB.open('test')"); Could you change 'test' to 'transaction-abort-with-js-recursion'? Running the layout tests in parallel can fail if multiple tests are mucking with the same db, so we've been using the name of the test. Comment on attachment 101036 [details]
fix style issue + test
Yay. Thanks!
Created attachment 101373 [details]
Patch for landing
Comment on attachment 101373 [details] Patch for landing Rejecting attachment 101373 [details] from commit-queue. Failed to run "['./Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '--bot-id=ec2-cq-02', '--port..." exit_code: 2 Last 500 characters of output: operties.html = TEXT fast/table/align-right-within-left-aligned-div.html = TEXT storage/indexeddb/transaction-abort-with-js-recursion.html = TEXT Regressions: Unexpected image mismatch : (5) fast/text/atsui-multiple-renderers.html = IMAGE fast/text/international/danda-space.html = IMAGE fast/text/international/thai-baht-space.html = IMAGE fast/text/international/thai-line-breaks.html = IMAGE platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html = IMAGE Full output: http://queues.webkit.org/results/9191008 Created attachment 101394 [details]
Patch for landing
Comment on attachment 101394 [details] Patch for landing Clearing flags on attachment: 101394 Committed r91309: <http://trac.webkit.org/changeset/91309> All reviewed patches have been landed. Closing bug. |