Bug 95079
Summary: | Assertion failure at WebCore::MessagePort::contextDestroyed() (MessagePort.cpp:158) | ||
---|---|---|---|
Product: | WebKit | Reporter: | Mark Lam <mark.lam> |
Component: | WebCore JavaScript | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | ||
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Mark Lam
This assertion failure has been seen to cause crashes on both the WK1 and WK2 Lion mac bots.
The earliest incidence of this that I found was:
- build 1877
- test: http/tests/security/XFrameOptions/x-frame-options-deny.html
- change sets:
http://trac.webkit.org/changeset/125609
http://trac.webkit.org/changeset/125602
http://trac.webkit.org/changeset/125603
http://trac.webkit.org/changeset/125604
http://trac.webkit.org/changeset/125605
http://trac.webkit.org/changeset/125606
http://trac.webkit.org/changeset/125608
The latest incidence of this was found on:
- build 2257
- test: http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html
Sampling through the build history, I've seen this assertion crash manifest on the following tests (this is not an exhaustive list):
- fast/events/message-port-context-destroyed.html (1901, 1920, 2055, 2218, 2222, 2227, 2234, 2639, 2832)
- http/tests/security/aboutBlank/security-context-alias.html (build 2227, 2250)
- http/tests/security/aboutBlank/security-context-grandchildren-alias.html (build 1890, 1905)
- http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html (build 2233)
- http/tests/security/XFrameOptions/x-frame-options-deny.html (build 1877)
- http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html (build 1879)
- http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html (build 2055, 2218, 2229, 2234, 2235)
- http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html (build 1885, 1903, 1920, 2239, 2244, 2245, 2246, 2249)
The crash / assertion failure is intermittent. It does not necessarily manifest on every build test run, nor always on the same tests. However, it has been seen to repeat on the same test more than once.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Mark Lam
Here is an excerpt of the crash log of the latest observed incident in test http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html on build 2257. The full crash log does not fit in this comment box (only an excerpt if copied here). The full crash log can be found at:
http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20(Tests)/r126743%20(2257)/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-crash-log.txt
=== BEGIN excerpt of crash log ===
Process: DumpRenderTree [3636]
Path: /Volumes/VOLUME/*/DumpRenderTree
Identifier: DumpRenderTree
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: Python [3635]
Date/Time: 2012-08-27 04:28:19.895 -0700
OS Version: Mac OS X 10.7.4 (11E53)
Report Version: 9
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef
VM Regions Near 0xbbadbeef:
-->
__TEXT 0000000105f37000-0000000105fcf000 [ 608K] r-x/rwx SM=COW /Volumes/VOLUME/*
Application Specific Information:
objc[3636]: garbage collection is OFF
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.apple.WebCore 0x0000000108810bd2 WebCore::MessagePort::contextDestroyed() + 178 (MessagePort.cpp:158)
1 com.apple.WebCore 0x0000000108c8e354 WebCore::ScriptExecutionContext::~ScriptExecutionContext() + 724 (ScriptExecutionContext.cpp:113)
2 com.apple.WebCore 0x0000000107a585f3 WebCore::Document::~Document() + 3523 (Document.cpp:687)
3 com.apple.WebCore 0x0000000107e9fa25 WebCore::HTMLDocument::~HTMLDocument() + 149 (HTMLDocument.cpp:91)
4 com.apple.WebCore 0x0000000107e9f8f5 WebCore::HTMLDocument::~HTMLDocument() + 21 (HTMLDocument.cpp:91)
5 com.apple.WebCore 0x0000000107e9f8c9 WebCore::HTMLDocument::~HTMLDocument() + 25 (HTMLDocument.cpp:90)
6 com.apple.WebCore 0x0000000107a72109 WebCore::Document::guardDeref() + 201 (Document.h:247)
7 com.apple.WebCore 0x0000000107a58bb0 WebCore::Document::removedLastRef() + 560 (Document.cpp:736)
8 com.apple.WebCore 0x0000000108850a22 WebCore::Node::removedLastRef() + 50 (Node.cpp:2814)
9 com.apple.WebCore 0x000000010765ce2e WebCore::TreeShared<WebCore::Node, WebCore::ContainerNode>::deref() + 494 (TreeShared.h:83)
10 com.apple.WebCore 0x000000010834cba6 WebCore::JSNode::releaseImpl() + 38 (JSNode.h:69)
11 com.apple.WebCore 0x0000000108479e61 WebCore::JSNodeOwner::finalize(JSC::Handle<JSC::Unknown>, void*) + 113 (JSNodeCustom.cpp:145)
12 com.apple.JavaScriptCore 0x00000001065aac47 JSC::WeakBlock::finalize(JSC::WeakImpl*) + 215 (WeakSetInlines.h:53)
13 com.apple.JavaScriptCore 0x00000001065aa59e JSC::WeakBlock::sweep() + 158 (WeakBlock.cpp:81)
14 com.apple.JavaScriptCore 0x00000001065aaf20 JSC::WeakSet::sweep() + 64 (WeakSet.cpp:45)
15 com.apple.JavaScriptCore 0x0000000106470f18 JSC::MarkedBlock::sweep(JSC::MarkedBlock::SweepMode) + 40 (MarkedBlock.cpp:108)
16 com.apple.JavaScriptCore 0x00000001065a88e1 JSC::MarkedAllocator::tryAllocateHelper() + 193 (MarkedAllocator.cpp:45)
17 com.apple.JavaScriptCore 0x00000001065a7b08 JSC::MarkedAllocator::tryAllocate() + 136 (MarkedAllocator.cpp:69)
18 com.apple.JavaScriptCore 0x00000001065a763a JSC::MarkedAllocator::allocateSlowCase() + 234 (MarkedAllocator.cpp:85)
19 com.apple.WebCore 0x0000000107777300 JSC::MarkedAllocator::allocate() + 64 (MarkedAllocator.h:83)
20 com.apple.WebCore 0x0000000107777c25 JSC::MarkedSpace::allocateWithDestructor(unsigned long) + 37 (MarkedSpace.h:197)
21 com.apple.WebCore 0x0000000107777bf6 JSC::Heap::allocateWithDestructor(unsigned long) + 134 (Heap.h:366)
22 com.apple.WebCore 0x0000000107783660 void* JSC::allocateCell<JSC::JSString>(JSC::Heap&) + 176 (JSCell.h:337)
23 com.apple.WebCore 0x0000000107783468 JSC::JSString::create(JSC::JSGlobalData&, WTF::PassRefPtr<WTF::StringImpl>) + 200 (JSString.h:126)
24 com.apple.WebCore 0x000000010843f3bc JSC::jsNontrivialString(JSC::JSGlobalData*, JSC::UString const&) + 156 (JSString.h:367)
25 com.apple.WebCore 0x000000010843ee15 JSC::jsNontrivialString(JSC::ExecState*, JSC::UString const&) + 37 (JSString.h:470)
26 com.apple.WebCore 0x000000010843e898 WebCore::JSLazyEventListener::initializeJSFunction(WebCore::ScriptExecutionContext*) const + 808 (JSLazyEventListener.cpp:97)
27 com.apple.WebCore 0x0000000108170db3 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext*) const + 163 (JSEventListener.h:84)
28 com.apple.WebCore 0x00000001083093fc WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 220 (JSEventListener.cpp:80)
29 com.apple.WebCore 0x0000000107cc59b9 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul>&) + 393 (EventTarget.cpp:232)
30 com.apple.WebCore 0x0000000107cc57fb WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 331 (EventTarget.cpp:200)
31 com.apple.WebCore 0x000000010884f16b WebCore::Node::handleLocalEvents(WebCore::Event*) + 155 (Node.cpp:2570)
32 com.apple.WebCore 0x0000000107c92595 WebCore::EventContext::handleLocalEvents(WebCore::Event*) const + 293 (EventContext.cpp:55)
33 com.apple.WebCore 0x0000000107c9567f WebCore::EventDispatcher::dispatchEventAtTarget(WTF::PassRefPtr<WebCore::Event>) + 111 (EventDispatcher.cpp:309)
34 com.apple.WebCore 0x0000000107c944b9 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 1129 (EventDispatcher.cpp:261)
35 com.apple.WebCore 0x0000000107c9a63c WebCore::EventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const + 76 (EventDispatchMediator.cpp:51)
36 com.apple.WebCore 0x0000000107c9307a WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>) + 154 (EventDispatcher.cpp:129)
37 com.apple.WebCore 0x000000010884f266 WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 70 (Node.cpp:2585)
38 com.apple.WebCore 0x0000000107c11026 WebCore::DOMWindow::dispatchLoadEvent() + 758 (DOMWindow.cpp:1639)
39 com.apple.WebCore 0x0000000107a621f2 WebCore::Document::dispatchWindowLoadEvent() + 146 (Document.cpp:4111)
40 com.apple.WebCore 0x0000000107a5f661 WebCore::Document::implicitClose() + 513 (Document.cpp:2537)
41 com.apple.WebCore 0x0000000107d7b2ab WebCore::FrameLoader::checkCallImplicitClose() + 155 (FrameLoader.cpp:766)
42 com.apple.WebCore 0x0000000107d7af75 WebCore::FrameLoader::checkCompleted() + 341 (FrameLoader.cpp:713)
43 com.apple.WebCore 0x0000000107d79d03 WebCore::FrameLoader::finishedParsing() + 179 (FrameLoader.cpp:646)
44 com.apple.WebCore 0x0000000107a6c16f WebCore::Document::finishedParsing() + 591 (Document.cpp:4887)
45 com.apple.WebCore 0x0000000107f7d014 WebCore::HTMLTreeBuilder::finished() + 148 (HTMLTreeBuilder.cpp:2696)
46 com.apple.WebCore 0x0000000107ea4b53 WebCore::HTMLDocumentParser::end() + 227 (HTMLDocumentParser.cpp:373)
47 com.apple.WebCore 0x0000000107ea3b46 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() + 278 (HTMLDocumentParser.cpp:382)
48 com.apple.WebCore 0x0000000107ea392c WebCore::HTMLDocumentParser::prepareToStopParsing() + 268 (HTMLDocumentParser.cpp:150)
49 com.apple.WebCore 0x0000000107ea4ba3 WebCore::HTMLDocumentParser::attemptToEnd() + 67 (HTMLDocumentParser.cpp:394)
50 com.apple.WebCore 0x0000000107ea4bf8 WebCore::HTMLDocumentParser::finish() + 72 (HTMLDocumentParser.cpp:421)
51 com.apple.WebCore 0x0000000107ad0ca7 WebCore::DocumentWriter::end() + 391 (DocumentWriter.cpp:245)
52 com.apple.WebCore 0x0000000107aad0bf WebCore::DocumentLoader::finishedLoading() + 207 (DocumentLoader.cpp:301)
53 com.apple.WebCore 0x00000001087a6f2e WebCore::MainResourceLoader::didFinishLoading(double) + 318 (MainResourceLoader.cpp:526)
54 com.apple.WebCore 0x00000001087a6193 WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction, WebCore::ResourceResponse const&) + 2051 (MainResourceLoader.cpp:346)
55 com.apple.WebCore 0x00000001087a6347 WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction) + 199 (MainResourceLoader.cpp:361)
56 com.apple.WebCore 0x00000001087a626b WebCore::MainResourceLoader::callContinueAfterContentPolicy(void*, WebCore::PolicyAction) + 27 (MainResourceLoader.cpp:353)
57 com.apple.WebCore 0x00000001088e8a16 WebCore::PolicyCallback::call(WebCore::PolicyAction) + 310 (PolicyCallback.cpp:115)
58 com.apple.WebCore 0x00000001088e98e4 WebCore::PolicyChecker::continueAfterContentPolicy(WebCore::PolicyAction) + 100 (PolicyChecker.cpp:195)
59 com.apple.WebKit 0x000000010704973c WebFrameLoaderClient::receivedPolicyDecison(WebCore::PolicyAction) + 412 (WebFrameLoaderClient.mm:1285)
60 com.apple.WebKit 0x000000010704e7e1 -[WebFramePolicyListener receivedPolicyDecision:] + 193 (WebFrameLoaderClient.mm:2033)
61 com.apple.WebKit 0x000000010704e900 -[WebFramePolicyListener use] + 48 (WebFrameLoaderClient.mm:2049)
62 com.apple.WebKit 0x000000010701a5b2 -[WebDefaultPolicyDelegate webView:decidePolicyForMIMEType:request:frame:decisionListener:] + 338 (WebDefaultPolicyDelegate.m:74)
63 com.apple.CoreFoundation 0x00007fff8b63aefc __invoking___ + 140
64 com.apple.CoreFoundation 0x00007fff8b63ad94 -[NSInvocation invoke] + 132
65 com.apple.CoreFoundation 0x00007fff8b63af64 -[NSInvocation invokeWithTarget:] + 52
66 com.apple.WebKit 0x0000000107120dd2 -[_WebSafeForwarder forwardInvocation:] + 370 (WebView.mm:3012)
67 com.apple.CoreFoundation 0x00007fff8b635fa4 ___forwarding___ + 756
68 com.apple.CoreFoundation 0x00007fff8b635c38 _CF_forwarding_prep_0 + 232
69 com.apple.WebKit 0x0000000107045268 WebFrameLoaderClient::dispatchDecidePolicyForResponse(void (WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::ResourceResponse const&, WebCore::ResourceRequest const&) + 360 (WebFrameLoaderClient.mm:722)
70 com.apple.WebCore 0x00000001088e9879 WebCore::PolicyChecker::checkContentPolicy(WebCore::ResourceResponse const&, void (*)(void*, WebCore::PolicyAction), void*) + 169 (PolicyChecker.cpp:109)
71 com.apple.WebCore 0x00000001087a6a1f WebCore::MainResourceLoader::didReceiveResponse(WebCore::ResourceResponse const&) + 1727 (MainResourceLoader.cpp:431)
72 com.apple.WebCore 0x00000001087a7291 WebCore::MainResourceLoader::handleEmptyLoad(WebCore::KURL const&, bool) + 513 (MainResourceLoader.cpp:571)
73 com.apple.WebCore 0x00000001087a771f WebCore::MainResourceLoader::loadNow(WebCore::ResourceRequest&) + 991 (MainResourceLoader.cpp:637)
74 com.apple.WebCore 0x00000001087a7abf WebCore::MainResourceLoader::load(WebCore::ResourceRequest const&, WebCore::SubstituteData const&) + 719 (MainResourceLoader.cpp:668)
75 com.apple.WebCore 0x0000000107aaf758 WebCore::DocumentLoader::startLoadingMainResource() + 344 (DocumentLoader.cpp:870)
76 com.apple.WebCore 0x0000000107d84d39 WebCore::FrameLoader::continueLoadAfterWillSubmitForm() + 185 (FrameLoader.cpp:2188)
77 com.apple.WebCore 0x0000000107d80faf WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool) + 1039 (FrameLoader.cpp:2794)
78 com.apple.WebCore 0x0000000107d8101b WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool) + 91 (FrameLoader.cpp:2663)
79 com.apple.WebCore 0x00000001088e87c8 WebCore::PolicyCallback::call(bool) + 136 (PolicyCallback.cpp:103)
80 com.apple.WebCore 0x00000001088e9483 WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction) + 723 (PolicyChecker.cpp:168)
81 com.apple.WebKit 0x000000010704973c WebFrameLoaderClient::receivedPolicyDecison(WebCore::PolicyAction) + 412 (WebFrameLoaderClient.mm:1285)
82 com.apple.WebKit 0x000000010704e7e1 -[WebFramePolicyListener receivedPolicyDecision:] + 193 (WebFrameLoaderClient.mm:2033)
83 com.apple.WebKit 0x000000010704e900 -[WebFramePolicyListener use] + 48 (WebFrameLoaderClient.mm:2049)
84 com.apple.WebKit 0x000000010701a6a2 -[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:] + 210 (WebDefaultPolicyDelegate.m:88)
85 com.apple.CoreFoundation 0x00007fff8b63aefc __invoking___ + 140
86 com.apple.CoreFoundation 0x00007fff8b63ad94 -[NSInvocation invoke] + 132
87 com.apple.CoreFoundation 0x00007fff8b63af64 -[NSInvocation invokeWithTarget:] + 52
88 com.apple.WebKit 0x0000000107120dd2 -[_WebSafeForwarder forwardInvocation:] + 370 (WebView.mm:3012)
89 com.apple.CoreFoundation 0x00007fff8b635fa4 ___forwarding___ + 756
90 com.apple.CoreFoundation 0x00007fff8b635c38 _CF_forwarding_prep_0 + 232
91 com.apple.WebKit 0x0000000107045cf4 WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(void (WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>) + 372 (WebFrameLoaderClient.mm:744)
92 com.apple.WebCore 0x00000001088e915b WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, void (*)(void*, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool), void*) + 1019 (PolicyChecker.cpp:88)
93 com.apple.WebCore 0x0000000107d80993 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) + 1715 (FrameLoader.cpp:1372)
94 com.apple.WebCore 0x0000000107d7fab7 WebCore::FrameLoader::loadWithNavigationAction(WebCore::ResourceRequest const&, WebCore::NavigationAction const&, bool, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>) + 855 (FrameLoader.cpp:1277)
95 com.apple.WebCore 0x0000000107d7cd9e WebCore::FrameLoader::loadURL(WebCore::KURL const&, WTF::String const&, WTF::String const&, bool, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::Event>, WTF::PassRefPtr<WebCore::FormState>) + 2046 (FrameLoader.cpp:1212)
96 com.apple.WebCore 0x0000000107d788f2 WebCore::FrameLoader::loadFrameRequest(WebCore::FrameLoadRequest const&, bool, bool, WTF::PassRefPtr<WebCore::Event>, WTF::PassRefPtr<WebCore::FormState>, WebCore::ShouldSendReferrer) + 1266 (FrameLoader.cpp:1142)
97 com.apple.WebCore 0x0000000107d77fe5 WebCore::FrameLoader::urlSelected(WebCore::FrameLoadRequest const&, WTF::PassRefPtr<WebCore::Event>, bool, bool, WebCore::ShouldSendReferrer, WebCore::ShouldReplaceDocumentIfJavaScriptURL) + 853 (FrameLoader.cpp:282)
98 com.apple.WebCore 0x0000000107d77c47 WebCore::FrameLoader::changeLocation(WebCore::SecurityOrigin*, WebCore::KURL const&, WTF::String const&, bool, bool, bool) + 359 (FrameLoader.cpp:251)
99 com.apple.WebCore 0x00000001088343f8 WebCore::ScheduledURLNavigation::fire(WebCore::Frame*) + 296 (NavigationScheduler.cpp:109)
100 com.apple.WebCore 0x00000001088317ef WebCore::NavigationScheduler::timerFired(WebCore::Timer<WebCore::NavigationScheduler>*) + 175 (NavigationScheduler.cpp:419)
101 com.apple.WebCore 0x0000000108833823 WebCore::Timer<WebCore::NavigationScheduler>::fired() + 115 (Timer.h:100)
102 com.apple.WebCore 0x0000000109000fd7 WebCore::ThreadTimers::sharedTimerFiredInternal() + 311 (ThreadTimers.cpp:118)
103 com.apple.WebCore 0x0000000109000d19 WebCore::ThreadTimers::sharedTimerFired() + 25 (ThreadTimers.cpp:94)
104 com.apple.WebCore 0x0000000108d0a8f3 _ZN7WebCoreL10timerFiredEP16__CFRunLoopTimerPv + 67 (SharedTimerMac.mm:167)
105 com.apple.CoreFoundation 0x00007fff8b5fd934 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
106 com.apple.CoreFoundation 0x00007fff8b5fd486 __CFRunLoopDoTimer + 534
107 com.apple.CoreFoundation 0x00007fff8b5dde11 __CFRunLoopRun + 1617
108 com.apple.CoreFoundation 0x00007fff8b5dd486 CFRunLoopRunSpecific + 230
109 com.apple.Foundation 0x00007fff8315bf7b -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267
110 DumpRenderTree 0x0000000105f4f21b _ZL7runTestRKNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE + 5035
111 DumpRenderTree 0x0000000105f4ddea _ZL20runTestingServerLoopv + 282
112 DumpRenderTree 0x0000000105f4d666 dumpRenderTree(int, char const**) + 374
113 DumpRenderTree 0x0000000105f4fa5c main + 124
114 DumpRenderTree 0x0000000105f38c94 start + 52
...
=== END excerpt crash log ===
Alexey Proskuryakov
*** This bug has been marked as a duplicate of bug 94458 ***