Bug 13757
Summary: | REGRESSION: Leaks seen on buildbot after r21497 | ||
---|---|---|---|
Product: | WebKit | Reporter: | Geoffrey Garen <ggaren> |
Component: | Page Loading | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | andersca, mitz |
Priority: | P1 | Keywords: | InRadar |
Version: | 523.x (Safari 3) | ||
Hardware: | Mac | ||
OS: | OS X 10.4 |
Geoffrey Garen
<rdar://problem/5209536>
* SUMMARY
Buildbot says they started with this check-in, but it's not terribly accurate:
Changed by: beidson
Changed at: Wed 16 May 2007 10:11:44
Revision: 21497
Changed files:
/LayoutTests/ChangeLog
/LayoutTests/http/tests/misc/multipart-expected.txt
/LayoutTests/http/tests/misc/multipart.html
/LayoutTests/http/tests/misc/resources/1x1-blue.png
/LayoutTests/http/tests/misc/resources/multipart.php
/WebCore/ChangeLog
/WebCore/loader/ResourceLoader.cpp
Comments:
LayoutTests:
Reviewed by Brady
- test for http://bugs.webkit.org/show_bug.cgi?id=13360
REGRESSION: Crash closing live web cam viewer page
* http/tests/misc/multipart-expected.txt: Added.
* http/tests/misc/multipart.html: Added.
* http/tests/misc/resources/1x1-blue.png: Added.
* http/tests/misc/resources/multipart.php: Added.
WebCore:
Reviewed by Brady
- fix http://bugs.webkit.org/show_bug.cgi?id=13360
REGRESSION: Crash closing live web cam viewer page
Test: http/tests/misc/multipart.html
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
didFinishLoad() has already been called (when the first part of a
multipart resource arrived).
(WebCore::ResourceLoader::didCancel): Ditto.
* RESULTS
Process 22325: 70651 nodes malloced for 27978 KB
Process 22325: 5 leaks for 128 total leaked bytes.
Leak: 0x05723be0 size=32 instance of 'NSConcreteMutableData'
0xa293f038 0x00000000 0x00000009 0x00000010 ...8............
0x0574d920 0x00000000 0x00000000 0x00000000 .t. ............
Call stack: [thread 11]: | 0x0 | _pthread_body | forkThreadForFunction | +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:] | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSources0 | _CFStreamSignalEventSynch | readStreamCallback2 | -[NSConnectionHTTPURLProtocol performHTTPHeaderRead] | -[NSConnectionHTTPURLProtocol setResponseHeaderUsingHTTPResponse:] | -[NSHTTPURLProtocol setResponseHeader:] | -[NSString(NSStringOtherEncodings) dataUsingEncoding:allowLossyConversion:] | NSAllocateObject | _internal_class_createInstanceFromZone
Leak: 0x0574e630 size=16
0x00000000 0x00000000 0x00000000 0x00004000 ..............@.
Call stack: [thread 3ba7]: | 0x3 | start | _start | main | dumpRenderTree | runTest | -[NSRunLoop runMode:beforeDate:] | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSources0 | _sendCallbacks | -[NSURLConnection(NSURLConnectionInternal) _sendCallbacks] | -[NSURLConnection(NSURLConnectionInternal) _flushQueuedData] | -[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:] | WebCore::ResourceLoader::didReceiveResponse(WebCore::ResourceHandle*, WebCore::ResourceResponse const&) | WebCore::SubresourceLoader::didReceiveResponse(WebCore::ResourceResponse const&) | WebCore::ResourceLoader::didReceiveResponse(WebCore::ResourceResponse const&) | WebCore::FrameLoader::didReceiveResponse(WebCore::ResourceLoader*, WebCore::ResourceResponse const&) | WebCore::ProgressTracker::incrementProgress(unsigned long, WebCore::ResourceResponse const&) | operator new(unsigned long) | WTF::fastMalloc(unsigned long)
Leak: 0x0574d920 size=16
0x2d2d6375 0x74486572 0x656c7380 0x00010001 --cutHerels.....
Call stack: [thread bfffea6c]: | 0x0 | _pthread_body | forkThreadForFunction | +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:] | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSources0 | _CFStreamSignalEventSynch | readStreamCallback2 | -[NSConnectionHTTPURLProtocol performHTTPHeaderRead] | -[NSConnectionHTTPURLProtocol setResponseHeaderUsingHTTPResponse:] | -[NSHTTPURLProtocol setResponseHeader:] | -[NSString(NSStringOtherEncodings) dataUsingEncoding:allowLossyConversion:] | -[NSMutableData initWithLength:] | -[NSConcreteMutableData setLength:] | _setupBytes
Leak: 0x006f5860 size=16
0x00000000 0x0000005b 0x00000000 0x00004000 .......[......@.
Call stack: [thread 3ba7]: | 0x3 | start | _start | main | dumpRenderTree | runTest | -[NSRunLoop runMode:beforeDate:] | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSources0 | _sendCallbacks | -[NSURLConnection(NSURLConnectionInternal) _sendCallbacks] | -[NSURLConnection(NSURLConnectionInternal) _flushQueuedData] | -[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:] | WebCore::ResourceLoader::didReceiveResponse(WebCore::ResourceHandle*, WebCore::ResourceResponse const&) | WebCore::SubresourceLoader::didReceiveResponse(WebCore::ResourceResponse const&) | WebCore::ResourceLoader::didReceiveResponse(WebCore::ResourceResponse const&) | WebCore::FrameLoader::didReceiveResponse(WebCore::ResourceLoader*, WebCore::ResourceResponse const&) | WebCore::ProgressTracker::incrementProgress(unsigned long, WebCore::ResourceResponse const&) | operator new(unsigned long) | WTF::fastMalloc(unsigned long)
1 leaks excluded (not printed)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
mitz
I built r21496, checked out the test from r21497, commented out the window.stop() line and executed 'run-webkit-tests --leaks http/tests/misc'. It reported two of the leaks, namely those under incrementProgress(). By disabling the multipart test and running the https/tests/misc tests again I quasi-confirmed that those two leaks occurred in that test.
mitz
The leaks under incrementProgress() appear to be easy to fix, but they are a side effect of a bigger problem, which is that multipart resources' progress is tracked after the first part is loaded. It appears to be a regression from shipping Safari. As I've mentioned somewhere else, in TOT the progress bar never completes while the multipart resource is loading, but on the other hand the Activity panel does not show its size increasing.
I have not looked into the other leaks yet.
Brady Eidson
Interesting to note that the first few bot cycles after I landed the patch, only those 2 were reported.
I really need to fix the multipart-progress thing. Have we been able to place blame in a revision yet?
mitz
*** Bug 13799 has been marked as a duplicate of this bug. ***
Anders Carlsson
Committed revision 21782.