rust-lang/futures-rs

!Send Future fails Miri check

Closed this issue · 1 comments

Similar to the tokio issue: tokio-rs/tokio#6750
Swapped tokio::join! usage with futures::join! and was able to replicate the same issue

Description

Working on a TickedAsyncExecutor using smol's async_task where the futures only progress when the executor is ticked

The future test only fails when !Send future is used along with futures::join!

Replication

Passing case when Send future
CI: https://github.com/coder137/ticked-async-executor/actions/runs/10259611867/job/28384360359
Branch: https://github.com/coder137/ticked-async-executor/tree/tokio_test
Test: https://github.com/coder137/ticked-async-executor/blob/tokio_test/tests/futures_tests.rs

Failing case when !Send future
CI: https://github.com/coder137/ticked-async-executor/actions/runs/10259553647/job/28384210470
Branch: https://github.com/coder137/ticked-async-executor/tree/tokio_test_spawn_local
Test: https://github.com/coder137/ticked-async-executor/blob/tokio_test_spawn_local/tests/futures_tests.rs

Log info

= help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
= help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information

ubuntu_futures_log.txt

This is not a problem of futures-rs. Closing in favor of an issue in Miri repo.