Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug. I-flaky-test Issue: A test is flaky/unreliable/spuriously fails 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.

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``
@jieyouxu jieyouxu added A-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug. I-flaky-test Issue: A test is flaky/unreliable/spuriously fails and removed A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) labels Nov 26, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug. I-flaky-test Issue: A test is flaky/unreliable/spuriously fails 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

6 participants