Closed
Bug 937006
Opened 12 years ago
Closed 12 years ago
"Hit MOZ_CRASH(Failed to get caller.)" using setTimeout on IndexedDB call
Categories
(Core :: Storage: IndexedDB, defect)
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: jruderman, Assigned: baku)
References
Details
(Keywords: crash, regression, testcase)
Crash Data
Attachments
(3 files, 2 obsolete files)
166 bytes,
text/html
|
Details | |
8.90 KB,
text/plain
|
Details | |
2.50 KB,
patch
|
Details | Diff | Splinter Review |
Hit MOZ_CRASH(Failed to get caller.) at dom/indexedDB/IDBRequest.cpp:281
Bug 933351 added this MOZ_CRASH line (actually, upgraded it from a warning).
Nightly: bp-4e09ae5c-0a5d-4c5d-8568-5c8ba2131111
Reporter | ||
Comment 1•12 years ago
|
||
Comment 2•12 years ago
|
||
Looks like the assumptions in the patch from bug 933351 Were not valid. Andrea, can you take a look?
Assignee: nobody → amarchesini
Flags: needinfo?(amarchesini)
Wait, a window is running a timeout... How is it possible that we can't dig out the file/line info from that?
Assignee | ||
Comment 4•12 years ago
|
||
It crashes because of the .bind(indexedDB). In IDBRequest.cpp we call |nsJSUtils::GetCallingLocation()| that calls |JS_DescribeScriptedCaller()|. This function return false (error) if the callee is not a JS script. In this case it's not.
Flags: needinfo?(amarchesini)
Assignee | ||
Comment 5•12 years ago
|
||
This patch adds a mochitest and replaces the crash with a warning.
Attachment #8335261 -
Flags: review?(bobbyholley+bmo)
Comment 6•12 years ago
|
||
Comment on attachment 8335261 [details] [diff] [review]
crash.patch
Review of attachment 8335261 [details] [diff] [review]:
-----------------------------------------------------------------
(In reply to Andrea Marchesini (:baku) from comment #4)
> It crashes because of the .bind(indexedDB). In IDBRequest.cpp we call
> |nsJSUtils::GetCallingLocation()| that calls |JS_DescribeScriptedCaller()|.
> This function return false (error) if the callee is not a JS script. In this
> case it's not.
Ahah! This was a case that was undefined in the spec until recently, when Boris, Hixie and I sorted it out. The new strategy is that callbacks (passed to timeouts and such) capture their incumbent script, and restore it onto the stack when they're invoked.
Please file a followup bug on turning this back into a MOZ_CRASH, and make it depend on bug 937317. r=bholley with that.
::: dom/indexedDB/test/test_bug937006.html
@@ +11,5 @@
> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
> +
> +<script>
> +
> +setTimeout(indexedDB.deleteDatabase.bind(indexedDB), 0, 'x');
Please add a comment here explaining what this is doing.
Attachment #8335261 -
Flags: review?(bobbyholley+bmo) → review+
Assignee | ||
Comment 7•12 years ago
|
||
Attachment #8335261 -
Attachment is obsolete: true
Assignee | ||
Comment 8•12 years ago
|
||
Keywords: checkin-needed
Comment 9•12 years ago
|
||
Flags: in-testsuite+
Keywords: checkin-needed
Comment 10•12 years ago
|
||
Backed out for Desktop B2G mochitest orange.
https://hg.mozilla.org/integration/mozilla-inbound/rev/7903faa79325
https://tbpl.mozilla.org/php/getParsedLog.php?id=30902000&tree=Mozilla-Inbound
Flags: in-testsuite+
Assignee | ||
Comment 11•12 years ago
|
||
Attachment #8335367 -
Attachment is obsolete: true
Comment 12•12 years ago
|
||
The test should have been just added to testing/mochitest/b2g-desktop.json
Assignee | ||
Comment 13•12 years ago
|
||
I'll re-enable this mochitest in a followup
Comment 14•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
You need to log in
before you can comment on or make changes to this bug.
Description
•