Bug 86910
Summary: | ASSERT in JSEventListener::jsFunction() from audioContext.oncompletion | ||
---|---|---|---|
Product: | WebKit | Reporter: | Jer Noble <jer.noble> |
Component: | WebCore JavaScript | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | abarth, ap, ggaren, jer.noble, pnormand |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Jer Noble
ASSERTION FAILED: m_wrapper || !m_jsFunction
/Volumes/Users/jer/Projects/WebKit.git/OpenSource/Source/WebCore/bindings/js/JSEventListener.h(90) : JSC::JSObject *WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext *) const
1 0x101f4f5b6 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*)
2 0x1019ee007 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul>&)
3 0x1019ede6b WebCore::EventTarget::fireEventListeners(WebCore::Event*)
4 0x1019edcf7 WebCore::EventTarget::dispatchEvent(WTF::PassRefPtr<WebCore::Event>)
5 0x101501790 WebCore::AudioContext::fireCompletionEvent()
6 0x10243f51d WebCore::OfflineAudioDestinationNode::notifyComplete()
7 0x10243f4e9 WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch(void*)
8 0x1005ac864 WTF::dispatchFunctionsFromMainThread()
9 0x7fff8cd4dea8 __NSThreadPerformPerform
10 0x7fff95792e91 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
11 0x7fff957927b5 __CFRunLoopDoSources0
12 0x7fff957b5a05 __CFRunLoopRun
13 0x7fff957b52f2 CFRunLoopRunSpecific
14 0x7fff8cd0c84e -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
15 0x100019259 runTest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
16 0x10001752d dumpRenderTree(int, char const**)
17 0x100019a99 main
18 0x7fff91f997e1 start
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Jer Noble
Assertion occurs when running DumpRenderTree against the following:
webaudio/delaynode-scheduling.html
webaudio/delaynode.html
webaudio/audiobuffersource-multi-channels.html
webaudio/delaynode-maxdelay.html
Alexey Proskuryakov
Sounds like the listener's wrapper is not protected from garbage collection.
Geoffrey Garen
Is this a regression?
Jer Noble
(In reply to comment #3)
> Is this a regression?
Probably not. It's only being discovered as I add support for dumping audio data out of the Mac version of DRT.
Philippe Normand
*** Bug 80298 has been marked as a duplicate of this bug. ***
Philippe Normand
Bug 80681 seems to be another dupe but has a tentative patch and some interesting comments from Geoffrey.
Alexey Proskuryakov
Philippe, Jer, would it be possible for you to look into this soon? We have a number of tests crashing on this assertion for unrelated reasons, and it would be very helpful to eliminate known and well understood cases.
Adam Barth
There's an AudioContext patch up for review that might fix this. Let me find it.
Adam Barth
https://bugs.webkit.org/show_bug.cgi?id=102356
Philippe Normand
*** This bug has been marked as a duplicate of bug 102356 ***