RESOLVED FIXED 220637
REGRESSION (r271472): [ Mac WK2 ] intersection-observer/target-deleted.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=220637
Summary REGRESSION (r271472): [ Mac WK2 ] intersection-observer/target-deleted.html i...
Truitt Savell
Reported 2021-01-14 15:32:34 PST
intersection-observer/target-deleted.html This test is timing out constantly sense around r271473 History: https://results.webkit.org/?suite=layout-tests&test=intersection-observer%2Ftarget-deleted.html I can reproduce this with command: run-webkit-tests --iterations 2000 --exit-after-n-failures 1 --exit-after-n-crashes-or-timeouts 1 --debug-rwt-logging --no-retry --force --no-build -f intersection-observer/target-deleted.html
Attachments
Patch (2.14 KB, patch)
2021-01-21 21:21 PST, Tim Horton
no flags
Radar WebKit Bug Importer
Comment 1 2021-01-14 15:32:49 PST
Truitt Savell
Comment 2 2021-01-14 16:00:30 PST
I was able to bisect this to r271471
Truitt Savell
Comment 3 2021-01-14 16:01:05 PST
(In reply to Truitt Savell from comment #2) > I was able to bisect this to r271471 r2714712 fails while r271471 passes actually. misstyped
Simon Fraser (smfr)
Comment 4 2021-01-15 10:12:23 PST
You mean https://trac.webkit.org/changeset/271472/webkit. Seems pretty unlikely that's the cause.
cathiechen
Comment 5 2021-01-18 04:24:04 PST
Hmm, I can't reproduce it on Catalina debug wk2. It seems specific to the release versions. I'll try to build release locally.
cathiechen
Comment 6 2021-01-19 23:45:54 PST
(In reply to cathiechen from comment #5) > Hmm, I can't reproduce it on Catalina debug wk2. > It seems specific to the release versions. > I'll try to build release locally. Tried the release version on macOS Catalina and Big Sur, but can't reproduce it.
Tim Horton
Comment 7 2021-01-21 13:05:00 PST
I can reproduce with Truitt's command.
Tim Horton
Comment 8 2021-01-21 13:07:56 PST
Even a single iteration is sufficient (which is consistent with the bots, and will make debugging easier).
Tim Horton
Comment 9 2021-01-21 20:18:02 PST
The observerShouldBeRemoved interval is firing forever, with 1 outstanding intersection observer live (i.e., the test is catching exactly the failure it was intended to fix...)
Tim Horton
Comment 10 2021-01-21 20:21:29 PST
Nothing even remotely near the regression point makes any sense, so I'm just going to see if I can debug.
Tim Horton
Comment 11 2021-01-21 20:23:36 PST
Tim Horton
Comment 12 2021-01-21 21:00:01 PST
I think this is just a test depending on GC and the GC not happening (despite the attempt to force it). If I run the test with --no-timeout, it spins forever, UNTIL the instant I try to remote-web-inspect it, then suddenly the element is collected, the IntersectionObserver goes away, and the test completes...
Ryosuke Niwa
Comment 13 2021-01-21 21:00:45 PST
Oh, try increasing the number of observers and check if any observer is collected? I suspect the test is buggy. Since we have a conservative GC, we can't guarantee all objects will be collected.
Simon Fraser (smfr)
Comment 14 2021-01-21 21:09:26 PST
Maybe the test needs to do something non-trivial in the loop to make gc() do something
Tim Horton
Comment 15 2021-01-21 21:09:33 PST
Wait, also, m_intersectionObservers is a Vector of WeakPtrs, and we're just getting its length... which won't decrease if one of the WeakPtrs gets zeroed, right? This is all a bit questionable.
Ryosuke Niwa
Comment 16 2021-01-21 21:19:29 PST
(In reply to Simon Fraser (smfr) from comment #14) > Maybe the test needs to do something non-trivial in the loop to make gc() do > something It's never guaranteed that gc() will collect all garbage because we have a conservative GC. Some objects can be kept alive even if they're logically dead.
Tim Horton
Comment 17 2021-01-21 21:21:48 PST
EWS
Comment 18 2021-01-21 22:08:25 PST
Committed r271736: <https://trac.webkit.org/changeset/271736> All reviewed patches have been landed. Closing bug and clearing flags on attachment 418108 [details].
Note You need to log in before you can comment on or make changes to this bug.