Skip to content

Conversation

joboet
Copy link
Member

@joboet joboet commented Oct 20, 2025

Fixes #147885
Closes #147871

wait_timeout is allowed to spuriously return, hence the timeout_nanoseconds must not assume that the wakeup resulted from a notify_all().

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Oct 20, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 20, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

assert!(!res.timed_out());
assert!(*guard);
let mut guard = maybe_unwrap(sent.lock());
loop {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a comment about why the loop?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@joboet joboet force-pushed the wait_timeout-spurious-test branch from ab98678 to 25142d7 Compare October 20, 2025 15:43
@rust-log-analyzer

This comment has been minimized.

@joboet joboet force-pushed the wait_timeout-spurious-test branch from 25142d7 to 76dfdd4 Compare October 20, 2025 15:54
@ChrisDenton
Copy link
Member

Thanks! This issue is affecting CI and the queue is fairly light atm so I'll give this a priority boost.

@bors r+ rollup p=1

@bors
Copy link
Collaborator

bors commented Oct 20, 2025

📌 Commit 76dfdd4 has been approved by ChrisDenton

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 20, 2025
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 20, 2025
… r=ChrisDenton

handle spurious returns of `wait_timeout` in test

Fixes rust-lang#147885
Closes rust-lang#147871

`wait_timeout` is allowed to spuriously return, hence the `timeout_nanoseconds` must not assume that the wakeup resulted from a `notify_all()`.
bors added a commit that referenced this pull request Oct 20, 2025
Rollup of 3 pull requests

Successful merges:

 - #147125 (move `once` module out of `poison`)
 - #147860 (rustdoc search: relax rules for identifiers)
 - #147910 (handle spurious returns of `wait_timeout` in test)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Oct 20, 2025

⌛ Testing commit 76dfdd4 with merge c7a635f...

@bors
Copy link
Collaborator

bors commented Oct 21, 2025

☀️ Test successful - checks-actions
Approved by: ChrisDenton
Pushing c7a635f to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 21, 2025
@bors bors merged commit c7a635f into rust-lang:master Oct 21, 2025
12 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Oct 21, 2025
@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 4068baf (parent) -> c7a635f (this PR)

Test differences

Show 2 test diffs

2 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c7a635f33c5fbd1ead110243a2f4a5f0561d79b0 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. i686-gnu-1: 9237.3s -> 7358.8s (-20.3%)
  2. x86_64-rust-for-linux: 2925.2s -> 2475.8s (-15.4%)
  3. pr-check-1: 1766.0s -> 1497.6s (-15.2%)
  4. arm-android: 6274.3s -> 5466.6s (-12.9%)
  5. x86_64-gnu-gcc: 3455.8s -> 3014.3s (-12.8%)
  6. i686-gnu-2: 6217.6s -> 5456.7s (-12.2%)
  7. i686-gnu-nopt-1: 8321.7s -> 7314.2s (-12.1%)
  8. x86_64-gnu-miri: 4919.8s -> 4336.2s (-11.9%)
  9. aarch64-gnu-llvm-20-2: 2466.0s -> 2185.4s (-11.4%)
  10. armhf-gnu: 5322.6s -> 4812.4s (-9.6%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c7a635f): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.3% [-0.3%, -0.3%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 472.36s -> 472.842s (0.10%)
Artifact size: 388.68 MiB -> 388.69 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

spurious test failures condvar::nonpoison_timeout_nanoseconds

7 participants