streams::pipe::tests::pipe_keeps_locks_until_async_abort_settles (perry-stdlib lib tests) fails intermittently in full-suite runs.
It was seen while validating #11462: 2 failures in about 40 full perry-stdlib lib runs at --test-threads=16. The failure mode is that the promise is already settled where the test expects it to still be pending. It never failed in 60 streams::-only runs or in 200 runs of the test alone, so it's cross-test residue, not a bug in the pipe logic itself. #11417's single-threaded run also stopped at this test once.
Suspects: a process-global async/promise queue or pump that a concurrent test drains, the same class as the async_bridge queue locks added in #11422 and the agent-ownership tags in #11445. It could also be an unrooted local in the test, as #11422's report suggested.
It needs triage before #11424 (stdlib tests in the runtime fan-out) makes it hit every runtime PR.
streams::pipe::tests::pipe_keeps_locks_until_async_abort_settles(perry-stdlib lib tests) fails intermittently in full-suite runs.It was seen while validating #11462: 2 failures in about 40 full perry-stdlib lib runs at
--test-threads=16. The failure mode is that the promise is already settled where the test expects it to still be pending. It never failed in 60streams::-only runs or in 200 runs of the test alone, so it's cross-test residue, not a bug in the pipe logic itself. #11417's single-threaded run also stopped at this test once.Suspects: a process-global async/promise queue or pump that a concurrent test drains, the same class as the async_bridge queue locks added in #11422 and the agent-ownership tags in #11445. It could also be an unrooted local in the test, as #11422's report suggested.
It needs triage before #11424 (stdlib tests in the runtime fan-out) makes it hit every runtime PR.