-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate Firefox test timeouts with latest fast-foundation
/fast-element
#2456
Comments
@m-akinc make sure to inline relevant build logs in the description since the logs are temporary |
I have been able to reproduce this locally, and I have confirmed that the timeouts are due to increasingly long "cycle collections" (CCs) by Firefox. A cycle collection is an operation that attempts to detect and free objects that are being held onto because of reference cycles. It seems to run after a garbage collection. Below is an image from a profile I took. In it, the red bars indicate "jank", which are event processing delays. As time goes on, these delays get longer and longer, Note the breaks in the black/rainbow-ish bands--these correspond to periods where the test run becomes unresponsive. The orange bands at the top are GCs. The wider yellow bands that follow them and the orange "mountains" at the bottom indicate where the CCs are being run. There are quite a few similar-sounding, CC-related issues reported on Bugzilla, some dating several years back, but others just months or days old. It seems like the Firefox cycle collector is prone to causing hangs over time. My guess is that by fixing the FAST memory leaks, we have now created a lot more garbage for the browser to collect and are now exposed to potential issues with the cycle collector. I have not yet figured what the next steps should be, or if there is some clever way to work around this (e.g. random thought: maybe we could hold references to the documents used by the tests to mimic the leaky world we lived in before the FAST update). |
Previously, I was running 500 insteances of a table selection test (i.e. 500 separate In fact, even in a modified version of the Angular example app (modified to just constantly create a new multi-column table from a template, add it to the The good news, though, is this is apparently unrelated to the FAST update. I tested the same modified Angular example app with the current versions of the FAST packages, and I see the same memory growth. I also ran a SystemLinkShared pipeline build with the newer versions of the FAST packages, and the test time was in-line with historical times (i.e. 6.5-7min). Based on all of this, it should be safe to unpin and bump our FAST dependency versions. We also need to bump up the timeout for Firefox tests from 5s to, say, 10s. |
# Pull Request ## 🤨 Rationale Update FAST versions to include the following fixes: - microsoft/fast#7022 - microsoft/fast#6960 And handle the following NI issues: - Fixes #1661 - https://ni.visualstudio.com/DevCentral/_workitems/edit/2843309 ## 👩💻 Implementation Updates the Fast Foundation version. A test performance regression was found in all browsers but particularly in Firefox, however [after investigation by @m-akinc](#2456) it was found to be an acceptable change. Fixes #2456 ## 🧪 Testing Extensive testing done in #2456 ## ✅ Checklist - [x] I have updated the project documentation to reflect my changes or determined no changes are needed. --------- Co-authored-by: Mert Akinc <[email protected]>
🧹 Tech Debt
A few tests (varies per build) seem to be timing out on Firefox on the build agents. The following example comes from a PR build on #2450:
I could not reproduce the failures locally.
We need to determine if it is safe to update Nimble's dependencies to the latest FAST versions. If it is, then we need to un-pin our dependency versions (pinned in #2455).
This issue blocks AZDO 2843309
The text was updated successfully, but these errors were encountered: