Closed
Bug 1091002
Opened 11 years ago
Closed 11 years ago
Crash @ xul!js::GetObjectClass+0x6
Categories
(Core :: DOM: Workers, defect)
Tracking
()
RESOLVED
FIXED
mozilla36
People
(Reporter: cbook, Assigned: swu)
References
()
Details
(Keywords: crash, regression)
Attachments
(4 files, 1 obsolete file)
Found via bughunter and reproduced on a win7 trunk debug build
steps to reproduce:
Load http://content.yudu.com/web/y5b2/0A2xfpx/2014WorldSeries/html/index.html#noRedirect
--> The Build will crash but no visible assertion failure or so
Got this crash in windbg and could get a stack etc
| Reporter | ||
Comment 1•11 years ago
|
||
| Reporter | ||
Comment 2•11 years ago
|
||
Comment 3•11 years ago
|
||
We're ending XMLHttpRequest::UpdateState with aUseCachedArrayBufferResponse true but aState.mResponse.isNull() also true.
Presumably a regression from bug 1008126...
Component: JavaScript Engine → DOM: Workers
Flags: needinfo?(swu)
Flags: needinfo?(bent.mozilla)
Comment 4•11 years ago
|
||
Oh, and I can reproduce on Mac, but not in my Linux debug build for some reason. :(
Blocks: 1008126
tracking-firefox34:
--- → ?
tracking-firefox35:
--- → ?
tracking-firefox36:
--- → ?
Keywords: regression
Comment 5•11 years ago
|
||
If comment 3 is correct, Firefox 31 is unaffected.
status-firefox33:
--- → wontfix
status-firefox34:
--- → affected
status-firefox35:
--- → affected
status-firefox36:
--- → affected
status-firefox-esr31:
--- → unaffected
| Assignee | ||
Comment 6•11 years ago
|
||
(In reply to Boris Zbarsky [:bz] from comment #3)
> We're ending XMLHttpRequest::UpdateState with aUseCachedArrayBufferResponse
> true but aState.mResponse.isNull() also true.
>
> Presumably a regression from bug 1008126...
Thanks for these information. I can reproduce on my Linux with debug build(but not every time).
The issue occurs when mStateData.mResponse is JSVAL_NULL, and will crash when calling MOZ_ASSERT(JS_IsArrayBufferObject(mStateData.mResponse.toObjectOrNull()));
Looking at it.
Assignee: nobody → swu
Flags: needinfo?(swu)
Flags: needinfo?(bent.mozilla)
| Assignee | ||
Comment 7•11 years ago
|
||
When reproduced this issue, there was an abort event for the XHR request with array buffer type. The abort event prevents the array buffer response from been transfered from main thread to worker thread XHR. So, when this happens we should find a way to tell other event runners of same XHR not the use the cached array buffer response.
| Assignee | ||
Comment 8•11 years ago
|
||
When beened aborted, we should also drop load/loadend events to worker XHR. Also, the original MOZ_ASSERT() is modified because JS_IsArrayBufferObject() doesn't accept null.
Attachment #8514929 -
Flags: review?(bent.mozilla)
Comment on attachment 8514929 [details] [diff] [review]
Patch: Don't dispatch load/loadend events to worker XHR when been aborted.
khuey has looked at this code more recently than me, maybe he wants to stamp this? Otherwise kick it back to me and I'll try to relearn this.
Attachment #8514929 -
Flags: review?(bent.mozilla) → review?(khuey)
| Assignee | ||
Comment 10•11 years ago
|
||
Revised.
Attachment #8514929 -
Attachment is obsolete: true
Attachment #8514929 -
Flags: review?(khuey)
Attachment #8517374 -
Flags: review?(khuey)
| Assignee | ||
Comment 11•11 years ago
|
||
Clear the cache in "Advanced->Network->Cached Web Content" before loading the crash link, then we can easily reproduce the issue.
I made a flow diagram for the current worker XHR behavior in http://goo.gl/FL16Cx
The diagram helps to understand why we should drop the loadend event from main thread.
Comment on attachment 8517374 [details] [diff] [review]
Patch: Drop loadend event from main thread to worker XHR if it's triggered by abort from worker.
Review of attachment 8517374 [details] [diff] [review]:
-----------------------------------------------------------------
r=me
That diagram is awesome btw.
Attachment #8517374 -
Flags: review?(khuey) → review+
| Assignee | ||
Comment 13•11 years ago
|
||
| Assignee | ||
Comment 14•11 years ago
|
||
(In reply to Kyle Huey [:khuey] (khuey@mozilla.com) from comment #12)
> Comment on attachment 8517374 [details] [diff] [review]
> Patch: Drop loadend event from main thread to worker XHR if it's triggered
> by abort from worker.
>
> Review of attachment 8517374 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> r=me
>
> That diagram is awesome btw.
Thank you.
| Reporter | ||
Comment 15•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Comment 16•11 years ago
|
||
I spoke with khuey on irc. He doesn't think this fix needs to be uplifted and said the code is scary and should have more bake time. Given that we go to build with beta9 tomorrow, we're not going to fix this in 34.
Comment 17•11 years ago
|
||
wontifixing for 35 as well, it can ride the trains.
You need to log in
before you can comment on or make changes to this bug.
Description
•