Mehdi Akiki
Rust Failure Atlas / failure families

Async and runtime

The failure depends on a suspension point, cancellation, scheduling, or shutdown.

This page lists all 16 records in this family. 13 of them have a failing and a repaired fixture, and 6 are keyed to a compiler error code. Use the Atlas search to filter by mechanism, first check, or evidence.

These cases in this family depend on the linker, a native toolchain, the target, a Cargo profile, the test harness, or the runtime. They are also featured on the Atlas front page.

Complete symptom directory

Case identifiers and anchors are stable. Records whose page is not published yet are listed without a link. Records marked “no fixture yet” link to an article and have no executable fixture.

  1. RFA-010 — A future is not `Send`, although the value named in the error looks local or already dropped.No fixture yet
  2. RFA-011 — An async future becomes unexpectedly large after adding one local value.No fixture yet
  3. RFA-012 — Dropping or timing out a future loses progress or leaves an external operation ambiguous.No fixture yet
  4. RFA-029 — A Tokio test uses paused time, awaits a timer, and never advances to the registered deadline.
  5. RFA-030 — A Rust process finishes its async work but does not exit when the Tokio runtime is dropped.
  6. RFA-033 — A Rust test passes alone but hangs when the full test suite runs with normal parallelism.
  7. RFA-035 — A Rust channel receiver reports closure while a sender still appears to exist in the application.
  8. RFA-036 — A hand-written Stream returns Pending and is never polled again after new data becomes available.
  9. RFA-086 — An async function becomes a non-Send future because an `Rc` value remains live across an await point.
  10. RFA-087 — Holding `std::sync::MutexGuard` across `.await` makes the enclosing future fail a Send requirement.
  11. RFA-088 — `Pin::new(&mut future)` rejects an async block with E0277 because its anonymous future is not Unpin.
  12. RFA-089 — A thread spawned inside a function rejects a borrowed `&str` because the reference escapes and would need to be `'static`.
  13. RFA-090 — Returning an async block fails with E0373 because the block borrows a local String that is destroyed when the factory function returns.
  14. RFA-425 — An async function taking Content without writing its lifetime argument fails with E0726 even though a similar-looking ordinary function may permit elision.
  15. RFA-616 — Awaiting an async block inside an ordinary fn fails with E0728 because only an async state machine can suspend and later resume that code.
  16. RFA-629 — Declaring async fn main fails with E0752 because the operating-system entry contract does not provide a Rust task context that can poll the returned future.