Bug 206579 - [CSS Backgrounds] ASSERTION FAILED: !image->size().isEmpty() on css/css-backgrounds/background-size/vector/zero*ratio-auto-5px.html
Summary: [CSS Backgrounds] ASSERTION FAILED: !image->size().isEmpty() on css/css-back...
Status: REOPENED
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-01-22 04:39 PST by Carlos Alberto Lopez Perez
Modified: 2023-04-10 09:07 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Alberto Lopez Perez 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]
Comment 1 Alexey Proskuryakov 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.
Comment 2 Carlos Alberto Lopez Perez 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
Comment 3 Alexey Proskuryakov 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.
Comment 4 Carlos Alberto Lopez Perez 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.
Comment 5 Carlos Alberto Lopez Perez 2020-02-27 10:15:45 PST
Committed r257573: <https://trac.webkit.org/changeset/257573>
Comment 6 Radar WebKit Bug Importer 2020-02-27 10:16:14 PST
<rdar://problem/59851561>
Comment 7 Carlos Alberto Lopez Perez 2020-02-27 10:17:11 PST
I skipped them on r257573. Re-opening bug closed by mistake.
Comment 8 Brent Fulgham 2023-04-10 09:07:12 PDT
This assert is still firing in current WebKit (262723@main)