[webkit-dev] Stability problems involving Javascript GC
Chris Backas
chb at infoplusonline.com
Mon Dec 6 12:53:03 PST 2010
>> And here is a common sort of stack trace I'm getting (this one from
>> 10.6)
>> Thread 0 Crashed: Dispatch queue: com.apple.main-thread
>> 0 com.apple.JavaScriptCore 0x9489f766 WTF::fastFree(void*)
>> + 134
>> 1 com.apple.WebCore 0x929be825
>> WebCore::CSSSelectorList::deleteSelectors() + 389
>> 2 com.apple.WebCore 0x92a38269
>> WebCore::CSSStyleRule::~CSSStyleRule() + 57
>> 3 com.apple.WebCore 0x929c3a04
>> WTF::Vector<WTF::RefPtr<WebCore::StyleBase>, 0ul>::shrink(unsigned
>> long) + 84
>> 4 com.apple.WebCore 0x92a38193
>> WebCore::StyleSheet::~StyleSheet() + 179
>> 5 com.apple.WebCore 0x92a38066
>> WebCore::CSSStyleSheet::~CSSStyleSheet() + 102
>> 6 com.apple.WebCore 0x92a91074
>> WTF::Vector<WTF::RefPtr<WebCore::StyleSheet>, 0ul>::shrink(unsigned
>> long) + 84
>> 7 com.apple.WebCore 0x92a29243
>> WebCore::StyleSheetList::~StyleSheetList() + 67
>> 8 com.apple.WebCore 0x92a28cd9
>> WebCore::Document::~Document() + 3529
>> 9 com.apple.WebCore 0x92a27f01
>> WebCore::HTMLDocument::~HTMLDocument() + 129
>> 10 com.apple.WebCore 0x92a27def
>> WebCore::Node::~Node() + 431
>> 11 com.apple.WebCore 0x92c05a21
>> WebCore::HTMLIFrameElement::~HTMLIFrameElement() + 129
>> 12 com.apple.WebCore 0x92b356fe
>> WebCore::JSNode::~JSNode() + 382
>> 13 com.apple.JavaScriptCore 0x9495a0d2 JSC::Heap::sweep() +
>> 274
>>
>> I find it odd that main isn't seen in the stack, but it never is.
>
>> The crash nearly ALWAYS occurs in WTF::fastFree(), very
>> occasionally occurring instead in some other memory management
>> function.
>
> In the backtrace you've pasted, there's no direct link to JavaScript
> GC. GC only appears in the backtrace because a JavaScript object
> held the last reference to the DOM document object.
>
> There's a small chance that you've run into this bug, or one of its
> relations: https://bugs.webkit.org/show_bug.cgi?id=50165.
>
> The best way to diagnose this is to provide a sample application
> that demonstrates the crash in Bugzilla.
>
> Thanks,
> Geoff
Thought I'd post two other backtraces that differ from the above but
are caused in the same way, in case someone here can see something in
them I cannot.
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.JavaScriptCore 0x9489e536
WTF::TCMalloc_Central_FreeList::RemoveRange(void**, void**, int*) + 198
1 com.apple.JavaScriptCore 0x9489d258 WTF::fastMalloc(unsigned
long) + 488
2 com.apple.WebCore 0x929850b2
WebCore::StringWrapperCFAllocator::allocate(long, unsigned long,
void*) + 66
3 com.apple.CoreFoundation 0x94d99a13 _CFRuntimeCreateInstance
+ 179
4 com.apple.CoreFoundation 0x94d9c1f5
__CFStringCreateImmutableFunnel3 + 789
5 com.apple.CoreFoundation 0x94da3bd0
CFStringCreateWithCharactersNoCopy + 96
6 com.apple.WebCore 0x929807bc
WebCore::StringImpl::createCFString() + 124
7 com.apple.WebCore 0x92a0c547
WebCore::ResourceRequest::doUpdatePlatformRequest() + 1159
8 com.apple.WebCore 0x92a0c0ab
WebCore::ResourceRequestBase::updatePlatformRequest() const + 27
9 com.apple.WebCore 0x92a0c05d
WebCore::ResourceRequest::nsURLRequest() const + 29
10 com.apple.WebKit 0x998a22f3
WebFrameLoaderClient
::dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long,
WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 163
11 com.apple.WebCore 0x93329151
WebCore
::ResourceLoadNotifier
::dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long,
WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 145
12 com.apple.WebCore 0x92a10ab2
WebCore
::ResourceLoadNotifier::willSendRequest(WebCore::ResourceLoader*,
WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 82
13 com.apple.WebCore 0x92a106d2
WebCore::ResourceLoader::willSendRequest(WebCore::ResourceRequest&,
WebCore::ResourceResponse const&) + 98
14 com.apple.WebCore 0x92abe8e0
WebCore::SubresourceLoader::willSendRequest(WebCore::ResourceRequest&,
WebCore::ResourceResponse const&) + 80
15 com.apple.WebCore 0x92abe084
WebCore::ResourceLoader::load(WebCore::ResourceRequest const&) + 580
16 com.apple.WebCore 0x9334345e
WebCore::SubresourceLoader::create(WebCore::Frame*,
WebCore::SubresourceLoaderClient*, WebCore::ResourceRequest const&,
WebCore::SecurityCheckPolicy, bool, bool) + 846
17 com.apple.WebCore 0x92a742b0
WebCore
::Loader::Host::servePendingRequests(WTF::Deque<WebCore::Request*>&,
bool&) + 912
18 com.apple.WebCore 0x92a73eff
WebCore::Loader::Host::servePendingRequests(WebCore::Loader::Priority)
+ 79
19 com.apple.WebCore 0x92abd37f
WebCore::Loader::load(WebCore::DocLoader*, WebCore::CachedResource*,
bool, WebCore::SecurityCheckPolicy, bool) + 399
20 com.apple.WebCore 0x92abd1d0
WebCore::CachedResource::load(WebCore::DocLoader*, bool,
WebCore::SecurityCheckPolicy, bool) + 96
21 com.apple.WebCore 0x92afadf0
WebCore::CachedResource::load(WebCore::DocLoader*) + 48
22 com.apple.WebCore 0x92abcc5f
WebCore::Cache::requestResource(WebCore::DocLoader*,
WebCore::CachedResource::Type, WebCore::KURL const&, WebCore::String
const&, bool) + 191
23 com.apple.WebCore 0x92abc507
WebCore::DocLoader::requestResource(WebCore::CachedResource::Type,
WebCore::String const&, WebCore::String const&, bool) + 183
24 com.apple.WebCore 0x92ba6125
WebCore::DocLoader::requestPreload(WebCore::CachedResource::Type,
WebCore::String const&, WebCore::String const&) + 69
25 com.apple.WebCore 0x92b0a678
WebCore::DocLoader::checkForPendingPreloads() + 440
26 com.apple.WebCore 0x92b09d51
WebCore::Loader::Host::didFinishLoading(WebCore::SubresourceLoader*) +
193
27 com.apple.WebCore 0x92b09bfc
WebCore::SubresourceLoader::didFinishLoading() + 44
28 com.apple.Foundation 0x972be56b -
[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading]
+ 84
29 com.apple.Foundation 0x972be4dc
_NSURLConnectionDidFinishLoading + 133
30 com.apple.CFNetwork 0x9271c44b
URLConnectionClient
::_clientDidFinishLoading
(URLConnectionClient::ClientConnectionEventQueue*) + 197
31 com.apple.CFNetwork 0x92793b88
URLConnectionClient
::ClientConnectionEventQueue
::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent,
XClientEventParams>*, long) + 306
32 com.apple.CFNetwork 0x9270eab0
URLConnectionClient::processEvents() + 94
33 com.apple.CFNetwork 0x9270e953
MultiplexerSource::perform() + 183
34 com.apple.CoreFoundation 0x94dd54cb __CFRunLoopDoSources0 +
1563
35 com.apple.CoreFoundation 0x94dd2f8f __CFRunLoopRun + 1071
36 com.apple.CoreFoundation 0x94dd2464 CFRunLoopRunSpecific + 452
37 com.apple.CoreFoundation 0x94dd2291 CFRunLoopRunInMode + 97
38 com.apple.HIToolbox 0x91e33f58
RunCurrentEventLoopInMode + 392
39 com.apple.HIToolbox 0x91e33d0f ReceiveNextEventCommon +
354
40 com.apple.HIToolbox 0x91e33b94
BlockUntilNextEventMatchingListInMode + 81
41 com.apple.AppKit 0x9520d78d _DPSNextEvent + 847
42 com.apple.AppKit 0x9520cfce -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
43 com.apple.AppKit 0x951cf247 -[NSApplication run] + 821
44 com.apple.AppKit 0x951c72d9 NSApplicationMain + 574
45 net.infoplus.SALServer 0x00001f6c main + 30 (main.m:14)
46 net.infoplus.SALServer 0x00001f33 _start + 209
47 net.infoplus.SALServer 0x00001e61 start + 41
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
========================================================================
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.JavaScriptCore 0x9489e536
WTF::TCMalloc_Central_FreeList::RemoveRange(void**, void**, int*) + 198
1 com.apple.JavaScriptCore 0x9489d258 WTF::fastMalloc(unsigned
long) + 488
2 com.apple.JavaScriptCore 0x948a1202
WebCore::StringImpl::create(unsigned short const*, unsigned int) + 66
3 com.apple.WebCore 0x92a3c0d9
WebCore::CSSParser::parseFontFamily() + 345
4 com.apple.WebCore 0x929bbcfe
WebCore::CSSParser::parseValue(int, bool) + 10126
5 com.apple.WebCore 0x929b4b0c cssyyparse(void*) + 10668
6 com.apple.WebCore 0x929b1fa0
WebCore::CSSParser::parseSheet(WebCore::CSSStyleSheet*,
WebCore::String const&) + 96
7 com.apple.WebCore 0x929b1ced
WebCore::CSSStyleSheet::parseString(WebCore::String const&, bool) + 77
8 com.apple.WebCore 0x92b824f1
WebCore::HTMLLinkElement::setCSSStyleSheet(WebCore::String const&,
WebCore::KURL const&, WebCore::String const&,
WebCore::CachedCSSStyleSheet const*) + 241
9 com.apple.WebCore 0x92b82368
WebCore::CachedCSSStyleSheet::checkNotify() + 200
10 com.apple.WebCore 0x92b82030
WebCore
::CachedCSSStyleSheet::data(WTF::PassRefPtr<WebCore::SharedBuffer>,
bool) + 304
11 com.apple.WebCore 0x92b09dd4
WebCore::Loader::Host::didFinishLoading(WebCore::SubresourceLoader*) +
324
12 com.apple.WebCore 0x92b09bfc
WebCore::SubresourceLoader::didFinishLoading() + 44
13 com.apple.Foundation 0x972be56b -
[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading]
+ 84
14 com.apple.Foundation 0x972be4dc
_NSURLConnectionDidFinishLoading + 133
15 com.apple.CFNetwork 0x9271c44b
URLConnectionClient
::_clientDidFinishLoading
(URLConnectionClient::ClientConnectionEventQueue*) + 197
16 com.apple.CFNetwork 0x92793b88
URLConnectionClient
::ClientConnectionEventQueue
::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent,
XClientEventParams>*, long) + 306
17 com.apple.CFNetwork 0x9270eab0
URLConnectionClient::processEvents() + 94
18 com.apple.CFNetwork 0x9270e953
MultiplexerSource::perform() + 183
19 com.apple.CoreFoundation 0x94dd54cb __CFRunLoopDoSources0 +
1563
20 com.apple.CoreFoundation 0x94dd2f8f __CFRunLoopRun + 1071
21 com.apple.CoreFoundation 0x94dd2464 CFRunLoopRunSpecific + 452
22 com.apple.CoreFoundation 0x94dd2291 CFRunLoopRunInMode + 97
23 com.apple.HIToolbox 0x91e33f58
RunCurrentEventLoopInMode + 392
24 com.apple.HIToolbox 0x91e33d0f ReceiveNextEventCommon +
354
25 com.apple.HIToolbox 0x91e33b94
BlockUntilNextEventMatchingListInMode + 81
26 com.apple.AppKit 0x9520d78d _DPSNextEvent + 847
27 com.apple.AppKit 0x9520cfce -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
28 com.apple.AppKit 0x951cf247 -[NSApplication run] + 821
29 com.apple.AppKit 0x951c72d9 NSApplicationMain + 574
30 net.infoplus.SALServer 0x00001f6c main + 30 (main.m:14)
31 net.infoplus.SALServer 0x00001f33 _start + 209
32 net.infoplus.SALServer 0x00001e61 start + 41
CONFIDENTIALITY NOTICE: This email (and any related attachments) contains information from InfoPlus (a service of Bristol Capital, Inc.). It is intended only for the addressee and may contain information that is confidential and/or otherwise exempt from disclosure under applicable law. If you are not the intended recipient or are acting as agent for the intended recipient, any use or disclosure of this communication is prohibited. If you have received this communication in error, please notify me immediately to arrange for the appropriate method of returning or disposing of the communication. If our respective Companies have confidentiality provisions in effect, this email and the materials contained herein are deemed CONFIDENTIAL and should be treated accordingly unless expressly provided otherwise.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20101206/a5fa0fea/attachment-0001.html>
More information about the webkit-dev
mailing list