REOPENED 206579
[CSS Backgrounds] ASSERTION FAILED: !image->size().isEmpty() on css/css-backgrounds/background-size/vector/zero*ratio-auto-5px.html
https://bugs.webkit.org/show_bug.cgi?id=206579
Summary [CSS Backgrounds] ASSERTION FAILED: !image->size().isEmpty() on css/css-back...
Carlos Alberto Lopez Perez
Reported 2020-01-22 04:39:19 PST
The test css/css-backgrounds/background-size/vector/zero*ratio-auto-5px.html crashes in Debug build: Regressions: Unexpected crashes (2) imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/zero-height-ratio-auto-5px.html [ Crash ] imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/zero-width-ratio-auto-5px.html [ Crash ] Same backtrace for both: 12:37:24.536 123902 ASSERTION FAILED: !image->size().isEmpty() 12:37:24.536 123902 ../../Source/WebCore/svg/graphics/SVGImageCache.cpp(81) : WebCore::Image* WebCore::SVGImageCache::imageForRenderer(const WebCore::RenderObject*) const 12:37:24.536 123902 1 0x7fc8c5565911 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x9) [0x7fc8c5565911] 12:37:24.536 123902 2 0x7fc8d1a67a0d /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::CrashOnOverflow::overflowed()+0) [0x7fc8d1a67a0d] 12:37:24.536 123902 3 0x7fc8d53207ef /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::SVGImageCache::imageForRenderer(WebCore::RenderObject const*) const+0xa7) [0x7fc8d53207ef] 12:37:24.536 123902 4 0x7fc8d4693a5a /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::CachedImage::imageForRenderer(WebCore::RenderObject const*)+0xd8) [0x7fc8d4693a5a] 12:37:24.536 123902 5 0x7fc8d46954f3 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::CachedImage::currentFrameKnownToBeOpaque(WebCore::RenderElement const*)+0x23) [0x7fc8d46954f3] 12:37:24.537 123902 6 0x7fc8d4f74171 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::StyleCachedImage::knownToBeOpaque(WebCore::RenderElement const*) const+0x4d) [0x7fc8d4f74171] 12:37:24.537 123902 7 0x7fc8d4f4b8c3 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FillLayer::hasOpaqueImage(WebCore::RenderElement const&) const+0x97) [0x7fc8d4f4b8c3] 12:37:24.537 123902 8 0x7fc8d4c998b2 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBox::paintFillLayers(WebCore::PaintInfo const&, WebCore::Color const&, WebCore::FillLayer const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance, WebCore::CompositeOperator, WebCore::RenderElement*)+0xd2) [0x7fc8d4c998b2] 12:37:24.537 123902 9 0x7fc8d4c98748 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBox::paintBackground(WebCore::PaintInfo const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance)+0x180) [0x7fc8d4c98748] 12:37:24.537 123902 10 0x7fc8d4c983b1 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBox::paintBoxDecorations(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0x367) [0x7fc8d4c983b1] 12:37:24.537 123902 11 0x7fc8d4c745be /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0xa6) [0x7fc8d4c745be] 12:37:24.537 123902 12 0x7fc8d4c73b0f /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0xed) [0x7fc8d4c73b0f] 12:37:24.537 123902 13 0x7fc8d4c741b0 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintChild(WebCore::RenderBox&, WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool, WebCore::RenderBlock::PaintBlockType)+0x3bc) [0x7fc8d4c741b0] 12:37:24.537 123902 14 0x7fc8d4c73dd4 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintChildren(WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool)+0x62) [0x7fc8d4c73dd4] 12:37:24.537 123902 15 0x7fc8d4c73d6c /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0x156) [0x7fc8d4c73d6c] 12:37:24.537 123902 16 0x7fc8d4c74928 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0x410) [0x7fc8d4c74928] 12:37:24.537 123902 17 0x7fc8d4c73b0f /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0xed) [0x7fc8d4c73b0f] 12:37:24.537 123902 18 0x7fc8d4c741b0 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintChild(WebCore::RenderBox&, WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool, WebCore::RenderBlock::PaintBlockType)+0x3bc) [0x7fc8d4c741b0] 12:37:24.537 123902 19 0x7fc8d4c73dd4 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintChildren(WebCore::PaintInfo&, WebCore::LayoutPoint const&, WebCore::PaintInfo&, bool)+0x62) [0x7fc8d4c73dd4] 12:37:24.537 123902 20 0x7fc8d4c73d6c /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0x156) [0x7fc8d4c73d6c] 12:37:24.537 123902 21 0x7fc8d4c74928 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0x410) [0x7fc8d4c74928] 12:37:24.537 123902 22 0x7fc8d4c73b0f /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)+0xed) [0x7fc8d4c73b0f] 12:37:24.537 123902 23 0x7fc8d4d91abf /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase, WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*)+0x249) [0x7fc8d4d91abf] 12:37:24.537 123902 24 0x7fc8d4d91781 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintForegroundForFragments(WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::GraphicsContext&, WebCore::GraphicsContext&, WebCore::LayoutRect const&, bool, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::PaintBehavior>, WebCore::RenderObject*)+0x3c7) [0x7fc8d4d91781] 12:37:24.537 123902 25 0x7fc8d4d8f77c /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0xc5a) [0x7fc8d4d8f77c] 12:37:24.537 123902 26 0x7fc8d4d8dddf /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0x161) [0x7fc8d4d8dddf] 12:37:24.537 123902 27 0x7fc8d4d8dc65 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayerWithEffects(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0x495) [0x7fc8d4d8dc65] 12:37:24.537 123902 28 0x7fc8d4d8d7c8 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0x142) [0x7fc8d4d8d7c8] 12:37:24.538 123902 29 0x7fc8d4d901f8 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintList(WebCore::RenderLayer::LayerList, WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0xc0) [0x7fc8d4d901f8] 12:37:24.538 123902 30 0x7fc8d4d8f855 /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0xd33) [0x7fc8d4d8f855] 12:37:24.538 123902 31 0x7fc8d4d8dddf /home/igalia/clopez/webkit/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext&, WebCore::RenderLayer::LayerPaintingInfo const&, WTF::OptionSet<WebCore::RenderLayer::PaintLayerFlag>)+0x161) [0x7fc8d4d8dddf]
Attachments
Alexey Proskuryakov
Comment 1 2020-02-22 17:25:45 PST
It's not really OK to leave 100% crashing tests enabled. Generating crash reports is somewhat costly, and can impact stability of other tests, or prevent us from getting crash reports from other tests. Please skip them.
Carlos Alberto Lopez Perez
Comment 2 2020-02-27 08:11:21 PST
(In reply to Alexey Proskuryakov from comment #1) > It's not really OK to leave 100% crashing tests enabled. > Sorry, but that I should mark crashing tests as Skip its totally news to me. And after thinking about that, I don't think its a good practice. I always mark crashing tests as Crash, for the very same reasons I mark tests failing as Failure, and tests timing-out as Timeout, and not simply skip them: 1) If there its a change in WebKit that makes the test start passing I want to be notified of that (new pass). 2) If the test starts failing (or timing out) instead of crashing I also want to get notified. 3) But if the test its skipped we won't get ever notified of the new behavior until someone manually un-skips it. > Generating crash > reports is somewhat costly, and can impact stability of other tests, or > prevent us from getting crash reports from other tests. Well, its also costly to mark tests timing-out as Timeout, and not simply skip them.. but we don't do that, do we? Also I don't see why it should impact stability or prevent from getting crashing reports from other tests? Its that a bug on WTR or on the tooling for running tests? Its the first time I hear this. Can you elaborate on why its this a problem? Thanks
Alexey Proskuryakov
Comment 3 2020-02-27 08:45:31 PST
> Well, its also costly to mark tests timing-out as Timeout, and not simply skip them.. but we don't do that, do we? We do. Please do, too. A lot of the work people are doing importing WPT tests is overall counter-productive, because it makes WebKit regression tests slower and less reliable. It is also a huge cost that someone else then has to find and triage flaky tests. > Also I don't see why it should impact stability or prevent from getting crashing reports from other tests? Generating a crash log is a CPU and disk access intensive operation. Since we already over-commit on the number of parallel processes, this is not trivial. Additionally, crash reporter on Apple platforms throttles reporting when there are too many reports to avoid impacting user experience. If you look at any recent Mac or iOS test run, you'll see that most crashes don't have crash logs. It is because of this.
Carlos Alberto Lopez Perez
Comment 4 2020-02-27 10:02:44 PST
(In reply to Alexey Proskuryakov from comment #3) > > Well, its also costly to mark tests timing-out as Timeout, and not simply skip them.. but we don't do that, do we? > > We do. Please do, too. > Well, on the GTK and WPE ports (so far) we don't do that. We mark tests as Crash or Timeout if they end always-crashing or always-timing-out. Maybe we should start doing thinks like you do, it makes little sense that we don't follow the same rules. Its there a document or wiki page where its documented the policy you follow regarding this? > A lot of the work people are doing importing WPT tests is overall > counter-productive, because it makes WebKit regression tests slower and less > reliable. It may be counter-productive from the point of view of getting the layout test step to run as fast as possible and without flaky results since WPT tests are a lot of extra tests to run, but its not counter-productive from the point of view of getting more test coverage. I have just checked it, and currently of 53340 layout tests, 17314 are WPT tests.. that's around 1/3 of the layout tests. Maybe we should re-think how we run WPT tests and perhaps run them in a new different step from the layout-test one. > It is also a huge cost that someone else then has to find and > triage flaky tests. > I agree, flaky tests are a time sink problem. > > Also I don't see why it should impact stability or prevent from getting crashing reports from other tests? > > Generating a crash log is a CPU and disk access intensive operation. Since > we already over-commit on the number of parallel processes, this is not > trivial. Good point, I see how leaving tests expectations as Crash can contribute to cause flaky tests (specially unexpected timeouts). It still seems not ideal to me to skip crashing tests, but having unexpected flaky tests seems a bigger problem. So, I will change the expectation for this tests to Skip.
Carlos Alberto Lopez Perez
Comment 5 2020-02-27 10:15:45 PST
Radar WebKit Bug Importer
Comment 6 2020-02-27 10:16:14 PST
Carlos Alberto Lopez Perez
Comment 7 2020-02-27 10:17:11 PST
I skipped them on r257573. Re-opening bug closed by mistake.
Brent Fulgham
Comment 8 2023-04-10 09:07:12 PDT
This assert is still firing in current WebKit (262723@main)
Note You need to log in before you can comment on or make changes to this bug.