test_pointer-events-2.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x* (native @ 0x*)], expected [object SVGRectElement @ 0x* (native @ 0x*)]

RESOLVED INVALID

Status

()

defect
RESOLVED INVALID
9 years ago
7 years ago

People

(Reporter: hsivonen, Unassigned)

Tracking

({intermittent-failure})

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(1 attachment)

(Reporter)

Description

9 years ago
66098 ERROR TEST-UNEXPECTED-FAIL | /tests/content/svg/content/test/test_pointer-events.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x11c1b51b0 (native @ 0x116d28f70)], expected [object SVGRectElement @ 0x115390ea0 (native @ 0x116e63f10)]

Happened in response to a push that seems unrelated:
http://hg.mozilla.org/mozilla-central/pushloghtml?changeset=0f5fc40c6a0f
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Depends on: 576986
There seems to have been an initial period from the 15th to to 21st where the test didn't cause problems. It does seem that something has changed that causes the foreignObject to appear to be either missing or in the wrong place.
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Robert - per bug 598208 comment 4, I can land this for you if you like (sharing a push on m-c so as not to trigger a separate test cycle).  Have you tested this on TryServer, though?

(This could probably be justified to land during the b7-blockers-only lockdown with "a=tests-only", but only if it's been verified to not cause perma-orange on any platform.)
(not that this would be likely to cause perma-orange -- I'd just be more comfortable pushing this if we were absolutely sure this was safe from a TryServer run.  The tree is effectively reserved for b7-blocker-only work right now, and it would be bad to mess that up with an accidental typo in a test-fix. :))
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
checked in http://hg.mozilla.org/mozilla-central/rev/b14c94a85555 I'll leave this bug open for a while and see if it occurs again.
Not seen this again after the check in fix.
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
Comment hidden (Legacy TBPL/Treeherder Robot)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Summary: test_pointer-events.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x11c1b51b0 (native @ 0x116d28f70)], expected [object SVGRectElement @ 0x115390ea0 (native @ 0x116e63f10)] → test_pointer-events-2.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x11c1b51b0 (native @ 0x116d28f70)], expected [object SVGRectElement @ 0x115390ea0 (native @ 0x116e63f10)]
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Summary: test_pointer-events-2.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x11c1b51b0 (native @ 0x116d28f70)], expected [object SVGRectElement @ 0x115390ea0 (native @ 0x116e63f10)] → test_pointer-events-2.xhtml | foreignObject with clip-path - got [object SVGForeignObjectElement @ 0x* (native @ 0x*)], expected [object SVGRectElement @ 0x* (native @ 0x*)]
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
This test was failing at a relatively low rate until May, at which point it looks like something changed to make it much more failure-prone.

Summarizing this bug's tbplbot posts since the test got its current name (in http://hg.mozilla.org/mozilla-central/rev/049638523ae9 ):

 [ Month ]     [failure count]
 Feb   2011:      9  
 March 2011:      2
 April 2011:      6
 May   2011:     32 so far  -- projected 83 failures for this whole month

There were no failures at all between 4/15 (comment 68) and 5/02 (comment 69), so it seems likely that something happened just before 5/02 that regressed this badly.  (The increase in project branches may have increased the number of opportunities for it to fail, too, but I don't think that explains all of the increase.)

Here's the pushlog for the 38 hours before comment 69 (that day up to the first failure, and the full day before it):
http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2011-05-01+00%3A00%3A00&enddate=2011-05-02+14%3A00%3A00

jwatt, perhaps you could look into this if you get a chance?  This is quickly becoming a major source of tinderbox orange.
OS: Mac OS X → All
Hardware: x86_64 → All
(note that the pushlog from comment 101 might not be exactly the right one - it's possible that comment 69 was a "low-frequency failure" and that the high-frequency failures just happened to start soon afterwards)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Comment hidden (Legacy TBPL/Treeherder Robot)
Pushed http://hg.mozilla.org/mozilla-central/rev/c6b086e676f2

The handler in the 'onload' attribute on the <svg> tag is defined to fire once its closing tag is parsed, which is too early. This change makes us wait until the document is complete by using the 'onload' attribute on the <body> instead.
Comment hidden (Legacy TBPL/Treeherder Robot)

Comment 112

8 years ago
(In reply to comment #111)
> jwatt%jwatt.org
> http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1305384316.1305387012.
> 6396.gz
> Rev3 MacOSX Snow Leopard 10.6.2 mozilla-central debug test mochitests-1/5 on
> 2011/05/14 07:45:16

This happened on 3f21638a8c8e39e2e8b472f8ead71a7539f3b313, which is an indirect child of c6b086e676f2, which I think tells us that the patch landed in comment 110 is not enough.  :(
We've basically put it back to what it was before the patch in comment 6 I think. Perhaps we need to do something to the foreignObject and wait for a mozAfterPaint event.
Comment hidden (Legacy TBPL/Treeherder Robot)
Err, actually the "failure" result is what we want! We should never be getting the foreignObject from document.elementFromPoint() since the foreignObject is entirely filled by the <path> (formerly <rect>).

Changing the expected element to be the path would turn this virtually permaorange, so for now I'm going to disable this test.

If I had to guess, I'd say that what's going on here is that the foreignObject hasn't been given it's initial reflow when the document's 'load' event fires. If I throw in a setTimeout then elementFromPoint() returns the path element instead of the foreignObject as it should.

I'm not sure what the correct way to proceed with fixing the underlying bug is though. Probably we should make sure the foreignObject gets reflowed before the document 'load' event is fired. If we don't think that needs to be the case then maybe we should do something along the lines of what longsonr suggested in comment 113.
Actually this orange is figured out now, so I'm closing this. I've opened bug 657155 for making sure that foreignObject can be relied upon to have been reflowed before the document 'load' event is fired.
Status: REOPENED → RESOLVED
Last Resolved: 9 years ago8 years ago
Resolution: --- → INVALID
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.