Bug 85073 - Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
Summary: Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
Status: RESOLVED DUPLICATE of bug 85077
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 54322
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-27 09:43 PDT by Dimitri Glazkov (Google)
Modified: 2012-04-28 00:48 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dimitri Glazkov (Google) 2012-04-27 09:43:29 PDT
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 Dimitri Glazkov (Google) 2012-04-27 10:32:39 PDT
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 Dimitri Glazkov (Google) 2012-04-27 10:37:50 PDT
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 Yong Li 2012-04-27 10:40:30 PDT
 The gif-large-checkerboard test uses a super large gif image, which could lead out-of-memory.
Comment 4 Alexey Proskuryakov 2012-04-27 11:13:21 PDT
When did this start? Might be same as bug 85077.
Comment 5 Dimitri Glazkov (Google) 2012-04-27 11:26:01 PDT
(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 noel gordon 2012-04-27 14:41:18 PDT
(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 noel gordon 2012-04-27 14:42:58 PDT
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 noel gordon 2012-04-27 15:19:15 PDT
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 Antti Koivisto 2012-04-27 16:01:41 PDT
This might well be bug 85077.
Comment 10 noel gordon 2012-04-27 16:35:13 PDT
Can't read that bug.  Best I can say is image decoding looks ok here.
Comment 11 noel gordon 2012-04-27 23:58:27 PDT
Can sniff the wind though; test went green after the fix landed.
Comment 12 noel gordon 2012-04-28 00:02:10 PDT
Committed r115551: <http://trac.webkit.org/changeset/115551>
Comment 13 Antti Koivisto 2012-04-28 00:06:00 PDT
Marking dupe to make the relationship clear.

*** This bug has been marked as a duplicate of bug 85077 ***
Comment 14 noel gordon 2012-04-28 00:13:41 PDT
Concur.
Comment 15 noel gordon 2012-04-28 00:48:48 PDT
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.