Bug 85073 - Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
: Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
Status: RESOLVED DUPLICATE of bug 85077
: WebKit
Page Loading
: 528+ (Nightly build)
: Unspecified Unspecified
: P2 Normal
Assigned To:
:
:
: 54322
:
  Show dependency treegraph
 
Reported: 2012-04-27 09:43 PST by
Modified: 2012-04-28 00:48 PST (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2012-04-27 09:43:29 PST
Test added in http://trac.webkit.org/changeset/67604 is crashing frequently. Not sure why, the stack traces have loader stuff in them. It's a puzzle. CC'ing peeps who may actually see something here.

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fimages%2Fgif-large-checkerboard.html
------- Comment #1 From 2012-04-27 10:32:39 PST -------
As an additional datapoint. The svg/carto.net/scrollbar.svg test is also crashing occasionally with a very similar stack: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=svg%2Fcarto.net%2Fscrollbar.svg
------- Comment #2 From 2012-04-27 10:37:50 PST -------
Stack trace for the scrollbar.svg test:

STDOUT:     base::debug::StackTrace::StackTrace() [0x86d1f6]
STDOUT:     base::(anonymous namespace)::StackDumpSignalHandler() [0x82de15]
STDOUT:     0x7f9d390e7af0
STDOUT:     WTF::Vector<>::size() [0x4e0122]
STDOUT:     WTF::CStringBuffer::length() [0x4e16f6]
STDOUT:     WTF::CString::length() [0x4e172a]
STDOUT:     WebCore::KURLGooglePrivate::string() [0x10c0d34]
STDOUT:     WebCore::KURL::string() [0x4ac6b4]
STDOUT:     WebCore::CachedResource::overheadSize() [0x15e48e1]
STDOUT:     WebCore::CachedResource::size() [0x15f8973]
STDOUT:     WebCore::MemoryCache::lruListFor() [0x15f7290]
STDOUT:     WebCore::MemoryCache::removeFromLRUList() [0x15f7349]
STDOUT:     WebCore::CachedResource::setDecodedSize() [0x15e34dd]
STDOUT:     WebCore::CachedCSSStyleSheet::destroyDecodedData() [0x15dc9a9]
STDOUT:     WebCore::MemoryCache::pruneDeadResourcesToSize() [0x15f6c5e]
STDOUT:     WebCore::MemoryCache::pruneDeadResources() [0x15f6993]
STDOUT:     WebCore::MemoryCache::prune() [0x15f84ba]
STDOUT:     WebCore::CachedResource::didAccessDecodedData() [0x15e3754]
STDOUT:     WebCore::CachedImage::didDraw() [0x15dfe5e]
STDOUT:     WebCore::BitmapImage::draw() [0x11d11b4]
STDOUT:     WebCore::BitmapImage::draw() [0x10fbee0]
STDOUT:     WebCore::GraphicsContext::drawImage() [0x1127ba8]
STDOUT:     WebCore::RenderSVGImage::paint() [0x1e447ea]
STDOUT:     WebCore::RenderSVGContainer::paint() [0x1e96c77]

Stack trace for gif-large-checkerboard.html:

STDERR: [23103:23103:3008304309080:ERROR:process_util_posix.cc(143)] Received signal 11
STDERR:     base::debug::StackTrace::StackTrace() [0x86d1f6]
STDERR:     base::(anonymous namespace)::StackDumpSignalHandler() [0x82de15]
STDERR:     0x7fac0d2ccaf0
STDERR:     WTF::Vector<>::size() [0x4e0122]
STDERR:     WTF::CStringBuffer::length() [0x4e16f6]
STDERR:     WTF::CString::length() [0x4e172a]
STDERR:     WebCore::KURLGooglePrivate::string() [0x10c0d34]
STDERR:     WebCore::KURL::string() [0x4ac6b4]
STDERR:     WebCore::CachedResource::overheadSize() [0x15e48e1]
STDERR:     WebCore::CachedResource::size() [0x15f8973]
STDERR:     WebCore::MemoryCache::lruListFor() [0x15f7290]
STDERR:     WebCore::MemoryCache::removeFromLRUList() [0x15f7349]
STDERR:     WebCore::CachedResource::setDecodedSize() [0x15e34dd]
STDERR:     WebCore::CachedCSSStyleSheet::destroyDecodedData() [0x15dc9a9]
STDERR:     WebCore::MemoryCache::pruneDeadResourcesToSize() [0x15f6c5e]
STDERR:     WebCore::MemoryCache::pruneDeadResources() [0x15f6993]
STDERR:     WebCore::MemoryCache::prune() [0x15f84ba]
STDERR:     WebCore::CachedResource::didAccessDecodedData() [0x15e3754]
STDERR:     WebCore::CachedImage::didDraw() [0x15dfe5e]
STDERR:     WebCore::BitmapImage::draw() [0x11d11b4]
STDERR:     WebCore::BitmapImage::draw() [0x10fbee0]
STDERR:     WebCore::GraphicsContext::drawImage() [0x1127ba8]
STDERR:     WebCore::GraphicsContext::drawImage() [0x11278fe]
STDERR:     WebCore::GraphicsContext::drawImage() [0x11277eb]
STDERR:     WebCore::RenderImage::paintIntoRect() [0x19737f8]
STDERR:     WebCore::RenderImage::paintReplaced() [0x19730b8]
STDERR:     WebCore::RenderReplaced::paint() [0x19e63eb]
STDERR:     WebCore::RenderImage::paint() [0x19731e7]
STDERR:     WebCore::InlineBox::paint() [0x18ad041]
STDERR:     WebCore::InlineFlowBox::paint() [0x18b28f4]
STDERR:     WebCore::RootInlineBox::paint() [0x1a41984]
STDERR:     WebCore::RenderLineBoxList::paint() [0x19b2dc2]
STDERR:     WebCore::RenderBlock::paintContents() [0x18d350f]
STDERR:     WebCore::RenderBlock::paintObject() [0x18d3d62]
STDERR:     WebCore::RenderBlock::paint() [0x18d2573]
STDERR:     WebCore::RenderBlock::paintChildren() [0x18d3861]
STDERR:     WebCore::RenderBlock::paintContents() [0x18d3528]
STDERR:     WebCore::RenderBlock::paintObject() [0x18d3d62]
STDERR:     WebCore::RenderBlock::paint() [0x18d2573]
STDERR:     WebCore::RenderLayer::paintLayerContents() [0x198bc40]
STDERR:     WebCore::RenderLayer::paintLayerContentsAndReflection() [0x198b2f6]
STDERR:     WebCore::RenderLayer::paintLayer() [0x198b1d4]
STDERR:     WebCore::RenderLayer::paintList() [0x198c310]
STDERR:     WebCore::RenderLayer::paintLayerContents() [0x198bec2]
STDERR:     WebCore::RenderLayer::paintLayerContentsAndReflection() [0x198b2f6]
STDERR:     WebCore::RenderLayer::paintLayer() [0x198b1d4]
STDERR:     WebCore::RenderLayer::paint() [0x198a78b]
STDERR:     WebCore::FrameView::paintContents() [0x16560ed]
STDERR:     WebCore::ScrollView::paint() [0x10cffa2]
STDERR:     WebKit::PageWidgetDelegate::paint() [0x514fa7]
STDERR:     WebKit::WebViewImpl::paint() [0x4cfaea]
STDERR:     WebViewHost::paintRect() [0x480fb9]
STDERR:     WebViewHost::paintInvalidatedRegion() [0x481240]
STDERR:     TestShell::dump() [0x46cdcc]
STDERR:     TestShell::testFinished() [0x46b5d6]
STDERR:     LayoutTestController::WorkQueue::processWorkSoon() [0x44a8cc]
STDERR:     LayoutTestController::locationChangeDone() [0x44bdfd]
STDERR:     WebViewHost::locationChangeDone() [0x4804ac]
STDERR:     WebViewHost::didFinishLoad() [0x47d72a]
STDERR:     WebKit::FrameLoaderClientImpl::dispatchDidFinishLoad() [0x5029cb]
STDERR:     WebCore::FrameLoader::checkLoadCompleteForThisFrame() [0x159fec1]
STDERR:     WebCore::FrameLoader::checkLoadComplete() [0x15a0a40]
------- Comment #3 From 2012-04-27 10:40:30 PST -------
 The gif-large-checkerboard test uses a super large gif image, which could lead out-of-memory.
------- Comment #4 From 2012-04-27 11:13:21 PST -------
When did this start? Might be same as bug 85077.
------- Comment #5 From 2012-04-27 11:26:01 PST -------
(In reply to comment #4)
> When did this start? Might be same as bug 85077.

Hard to tell precisely, but it looks like the carto.net stuff started flaking around 115350s or so.
------- Comment #6 From 2012-04-27 14:41:18 PST -------
(In reply to comment #3)
>  The gif-large-checkerboard test uses a super large gif image, which could lead out-of-memory.

We're protected from large allocations: bug 72864, bug 48634, and the large image test fast/images/size-failure.html is passing.

  http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&showAllRuns=true&showExpectations=true&tests=%20fast%2Fimages%2Fsize-failure.html
------- Comment #7 From 2012-04-27 14:42:58 PST -------
The gif-large-checkerboard is a relatively small image, ~1600 x 2000 px, and the renderer is happy to try paint it: WebCore::RenderImage::paintIntoRect().  Suggests it's decoded ok.  Paints fine for me in Chrome.
------- Comment #8 From 2012-04-27 15:19:15 PST -------
Image paint is followed by normal memory cache pruning and LRU re-organisation.  I see style sheet pruning

  WebCore::CachedCSSStyleSheet::destroyDecodedData()

in the trace.  Maybe bug 85004 which is in this (rough) range - flaking began around 115350s comment #5.

WebCore::KURL::string() goes berserk: is the style sheet URL bogus when computing CachedResource::overheadSize()?

  http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedResource.cpp?rev=111610#L749
------- Comment #9 From 2012-04-27 16:01:41 PST -------
This might well be bug 85077.
------- Comment #10 From 2012-04-27 16:35:13 PST -------
Can't read that bug.  Best I can say is image decoding looks ok here.
------- Comment #11 From 2012-04-27 23:58:27 PST -------
Can sniff the wind though; test went green after the fix landed.
------- Comment #12 From 2012-04-28 00:02:10 PST -------
Committed r115551: <http://trac.webkit.org/changeset/115551>
------- Comment #13 From 2012-04-28 00:06:00 PST -------
Marking dupe to make the relationship clear.

*** This bug has been marked as a duplicate of bug 85077 ***
------- Comment #14 From 2012-04-28 00:13:41 PST -------
Concur.
------- Comment #15 From 2012-04-28 00:48:48 PST -------
And started at bug 85004, I believe.  Wonder if that works well for forum sites like http://gcfly.org/viewthread.php?tid=5721 where images thrash the decoded resources mem cache.