Bug 85073
Summary: | Layout Test fast/images/gif-large-checkerboard.html is a flaky crash | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dimitri Glazkov (Google) <dglazkov> |
Component: | Page Loading | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | ap, japhet, koivisto, noel.gordon, schenney, yong.li.webkit |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | 54322 | ||
Bug Blocks: |
Dimitri Glazkov (Google)
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
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Dimitri Glazkov (Google)
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
Dimitri Glazkov (Google)
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]
Yong Li
The gif-large-checkerboard test uses a super large gif image, which could lead out-of-memory.
Alexey Proskuryakov
When did this start? Might be same as bug 85077.
Dimitri Glazkov (Google)
(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.
noel gordon
(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
noel gordon
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.
noel gordon
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
Antti Koivisto
This might well be bug 85077.
noel gordon
Can't read that bug. Best I can say is image decoding looks ok here.
noel gordon
Can sniff the wind though; test went green after the fix landed.
noel gordon
Committed r115551: <http://trac.webkit.org/changeset/115551>
Antti Koivisto
Marking dupe to make the relationship clear.
*** This bug has been marked as a duplicate of bug 85077 ***
noel gordon
Concur.
noel gordon
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.