Skip to content
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

rustdoc-gui tests sporadically failing #93784

Open
ehuss opened this issue Feb 8, 2022 · 18 comments
Open

rustdoc-gui tests sporadically failing #93784

ehuss opened this issue Feb 8, 2022 · 18 comments
Labels
A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Comments

@ehuss
Copy link
Contributor

ehuss commented Feb 8, 2022

The src/test/rustdoc-gui tests have been sporadically failing on CI:

These may have started with #93597
cc @GuillaumeGomez

There are various different errors:

/checkout/src/test/rustdoc-gui/search-tab-selection-if-current-is-empty.goml search-tab-selection-if-current-is-empty... FAILED
[ERROR] (line 6) TimeoutError: waiting for selector "#titles" failed: timeout 30000ms exceeded: for command `wait-for: "#titles"`
/checkout/src/test/rustdoc-gui/search-result-display.goml search-result-display... FAILED
[ERROR] (line 6) TimeoutError: waiting for selector "#titles" failed: timeout 30000ms exceeded: for command `wait-for: "#titles"`
/checkout/src/test/rustdoc-gui/src-font-size.goml An exception occured: read ECONNRESET
== STACKTRACE ==
Error
    at innerRunTestCode (/node-v14.4.0-linux-x64/lib/node_modules/browser-ui-test/src/index.js:468:16)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async main (/checkout/src/tools/rustdoc-gui/tester.js:226:13)
/checkout/src/test/rustdoc-gui/mobile.goml An exception occured: Failed to launch the browser process!
Inconsistency detected by ld.so: dl-tls.c: 493: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!


TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md
== STACKTRACE ==
Error
Error
    at innerRunTestCode (/node-v14.4.0-linux-x64/lib/node_modules/browser-ui-test/src/index.js:468:16)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
@ehuss ehuss added T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) labels Feb 8, 2022
@GuillaumeGomez
Copy link
Member

That is concerning... If it happens too many times, let's revert it.

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Feb 16, 2022
…st, r=notriddle

Update browser UI test version

Might help a bit with rust-lang#93784 (still need to figure out what's going on with the driver).

r? `@notriddle`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Feb 16, 2022
…st, r=notriddle

Update browser UI test version

Might help a bit with rust-lang#93784 (still need to figure out what's going on with the driver).

r? ``@notriddle``
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Feb 16, 2022
…st, r=notriddle

Update browser UI test version

Might help a bit with rust-lang#93784 (still need to figure out what's going on with the driver).

r? ```@notriddle```
@GuillaumeGomez
Copy link
Member

There is also #94417.

@nikic
Copy link
Contributor

nikic commented Mar 9, 2022

It looks like rustdoc-gui tests are now consistently failing with:

2022-03-09T18:18:21.7017663Z /checkout/src/test/rustdoc-gui/mobile.goml mobile... FAILED
2022-03-09T18:18:21.7018773Z [ERROR] (line 27) Error: Evaluation failed: assert didn't fail: for command compare-elements-position-near-false: ("#preferred-light-theme .setting-name", "#preferred-light-theme .choice", {"y": 16})

@GuillaumeGomez
Copy link
Member

I'm checking locally.

Dylan-DPC added a commit to Dylan-DPC/rust that referenced this issue Mar 10, 2022
…st, r=notriddle

Update browser-ui-test version

It should help with rust-lang#93784 (the important PR helping in this regard is GuillaumeGomez/browser-UI-test#273).

r? `@notriddle`
@GuillaumeGomez
Copy link
Member

@ehuss Is it still the case?

@ehuss
Copy link
Contributor Author

ehuss commented Mar 29, 2022

It seems to still be happening regularly:

2021-11-23T17:42:34 https://github.com/rust-lang-ci/rust/actions/runs/1495820343: [ERROR] (line 4) TimeoutError: waiting for selector
2021-12-14T00:47:00 https://github.com/rust-lang-ci/rust/actions/runs/1575507908: [ERROR] (line 17) TimeoutError: waiting for selector
2022-01-22T19:25:41 https://github.com/rust-lang-ci/rust/actions/runs/1733757860: /checkout/src/test/rustdoc-gui/search-result-description.goml An exception occured: Failed to launch the browser process!
2022-01-26T19:44:04 https://github.com/rust-lang-ci/rust/actions/runs/1752548375: /checkout/src/test/rustdoc-gui/impl-default-expansion.goml An exception occured: Failed to launch the browser process!
2022-01-31T08:11:10 https://github.com/rust-lang-ci/rust/actions/runs/1771336059: [ERROR] (line 6) TimeoutError: waiting for selector
2022-02-04T05:46:21 https://github.com/rust-lang-ci/rust/actions/runs/1793315545: /checkout/src/test/rustdoc-gui/trait-sidebar-item-order.goml An exception occured: Failed to launch the browser process!
2022-02-05T22:03:59 https://github.com/rust-lang-ci/rust/actions/runs/1800584018: /checkout/src/test/rustdoc-gui/src-font-size.goml An exception occured: read ECONNRESET
2022-02-07T19:15:06 https://github.com/rust-lang-ci/rust/actions/runs/1808171078: [ERROR] (line 6) TimeoutError: waiting for selector
2022-02-08T21:52:54 https://github.com/rust-lang-ci/rust/actions/runs/1814714051: [ERROR] (line 6) TimeoutError: waiting for selector
2022-02-08T22:32:08 https://github.com/rust-lang-ci/rust/actions/runs/1814879899: /checkout/src/test/rustdoc-gui/implementors.goml An exception occured: Failed to launch the browser process!
2022-02-14T11:19:42 https://github.com/rust-lang-ci/rust/actions/runs/1840526472: /checkout/src/test/rustdoc-gui/search-filter.goml An exception occured: Failed to launch the browser process!
2022-02-21T07:21:35 https://github.com/rust-lang-ci/rust/actions/runs/1874627943: [ERROR] (line 6) TimeoutError: waiting for selector
2022-02-22T02:47:16 https://github.com/rust-lang-ci/rust/actions/runs/1879224701: /checkout/src/test/rustdoc-gui/search-result-description.goml An exception occured: Failed to launch the browser process!
2022-03-05T14:31:20 https://github.com/rust-lang-ci/rust/actions/runs/1938283620: /checkout/src/test/rustdoc-gui/toggled-open-implementations.goml An exception occured: Failed to launch the browser process!
2022-03-07T21:18:49 https://github.com/rust-lang-ci/rust/actions/runs/1947870857: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-09T06:18:46 https://github.com/rust-lang-ci/rust/actions/runs/1955562234: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-09T18:18:21 https://github.com/rust-lang-ci/rust/actions/runs/1958791332: /checkout/src/test/rustdoc-gui/toggle-docs-mobile.goml An exception occured: Failed to launch the browser process!
2022-03-09T18:49:35 https://github.com/rust-lang-ci/rust/actions/runs/1958984691: /checkout/src/test/rustdoc-gui/jump-to-def-background.goml An exception occured: Failed to launch the browser process!
2022-03-10T05:52:57 https://github.com/rust-lang-ci/rust/actions/runs/1961326088: /checkout/src/test/rustdoc-gui/toggle-docs.goml An exception occured: Failed to launch the browser process!
2022-03-20T08:34:38 https://github.com/rust-lang-ci/rust/actions/runs/2011183164: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-21T18:32:43 https://github.com/rust-lang-ci/rust/actions/runs/2017851280: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-24T09:11:02 https://github.com/rust-lang-ci/rust/actions/runs/2033118524: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-27T12:24:59 https://github.com/rust-lang-ci/rust/actions/runs/2047654016: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-27T15:02:11 https://github.com/rust-lang-ci/rust/actions/runs/2048045097: [ERROR] (line 6) TimeoutError: waiting for selector
2022-03-28T05:47:21 https://github.com/rust-lang-ci/rust/actions/runs/2050300242: [ERROR] (line 6) TimeoutError: waiting for selector

@GuillaumeGomez
Copy link
Member

The situation seems to have been much better since #95013: there is just one error to fix now. \o/

Dylan-DPC added a commit to Dylan-DPC/rust that referenced this issue Mar 30, 2022
…t, r=notriddle

Fix last rustdoc-gui spurious test

This should the last spurious failing GUI test from rust-lang#93784.

r? `@notriddle`
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this issue Mar 31, 2022
…t, r=notriddle

Fix last rustdoc-gui spurious test

This should the last spurious failing GUI test from rust-lang#93784.

r? ``@notriddle``
@ehuss
Copy link
Contributor Author

ehuss commented Apr 3, 2022

@GuillaumeGomez Just FYI, there's still timeouts happening after #95470:

/checkout/src/test/rustdoc-gui/search-filter.goml search-filter... FAILED
Error:  (line 6) TimeoutError: waiting for selector "#titles" failed: timeout 30000ms exceeded: for command `wait-for: "#titles"`

https://github.com/rust-lang-ci/rust/actions/runs/2086146075

@GuillaumeGomez
Copy link
Member

Thanks! Then I'll need for another way to wait for the search results.

@GuillaumeGomez
Copy link
Member

Nevermind, seems like new bugs appeared recently. I'll take another look.

@GuillaumeGomez
Copy link
Member

A new spurious failure appeared in #102744.

notriddle added a commit to notriddle/rust that referenced this issue Oct 11, 2022
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Oct 14, 2022
…est, r=notriddle

Update browser-ui-test version to fix some flaky tests

Part of rust-lang#93784.

It should fix the new spurious failure found in rust-lang#102744.

r? `@notriddle`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Oct 14, 2022
…est, r=notriddle

Update browser-ui-test version to fix some flaky tests

Part of rust-lang#93784.

It should fix the new spurious failure found in rust-lang#102744.

r? ``@notriddle``
@notriddle
Copy link
Contributor

Another flaky GUI test #104647 (comment)

@RalfJung
Copy link
Member

That was

/checkout/src/test/rustdoc-gui/code-sidebar-toggle.goml code-sidebar-toggle... FAILED

@notriddle
Copy link
Contributor

#105125 (comment)

@GuillaumeGomez
Copy link
Member

It seems to be mostly:

/checkout/src/test/rustdoc-gui/basic-code.goml basic-code... FAILED
Error:  (line 3) Error: Execution context was destroyed, most likely because of a navigation.: for command `assert-count: (".src-line-numbers", 1)`

@GuillaumeGomez
Copy link
Member

So about "execution context was destroyed": it seems that when puppeteer gets a element from the DOM, it can get destroyed in the meantime (for whatever reason), resulting in the current issue. A solution would be to instead move everything directly into the browser context. I'll check that in the next weeks to see if it improves the situation.

@GuillaumeGomez
Copy link
Member

Same spurious failure in #106315. So my fix didn't solve this issue unfortunately...

bors added a commit to rust-lang-ci/rust that referenced this issue Jan 8, 2023
…hanism, r=Mark-Simulacrum

Add retry mechanism for rustdoc GUI tests to reduce flakyness

Part of rust-lang#93784.

I added 3 retries for failing GUI tests. An important note: if more than half of total tests fail, I don't retry because it's very likely not flakyness anymore at this point but a missing update after changes.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Feb 24, 2023
…tion-bug, r=notriddle

Fix GUI test navigation bug

Following GuillaumeGomez/browser-UI-test#438, we can now remove this `wait-for`.

Should help with rust-lang#93784.

r? `@notriddle`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Feb 25, 2023
…tion-bug, r=notriddle

Fix GUI test navigation bug

Following GuillaumeGomez/browser-UI-test#438, we can now remove this `wait-for`.

Should help with rust-lang#93784.

r? ``@notriddle``
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants