Futurelock
Oxide and Friends · 7 Nov 2025 · 1h 37m · Episode 31
What this episode covers
Oxide engineers Dave Pacheco, John Gallagher, Sean Klein, and Eliza Weisman explain 'Futurelock,' a deadlock in async Rust where a Tokio task holds a permit on an MPSC channel but fails to insert a message, causing the receiver to block indefinitely. The team diagnosed the issue using DTrace, core dumps, and Ghidra, discovering that a `tokio::select!` with a mutably borrowed future allowed one arm to grab a channel permit while another arm tried to send, creating a self-deadlock. They emphasize that no single library component was at fault, but rather a specific combination of `select`, mutable futures, and channel semantics created the pathology, which they documented in RFD 609 to help other Rust developers avoid it.
Most relevant to
large enterprises
Topics
Mentioned
- Companies
- Oxide Computer Company
- Products
- CORB
- Tools
- Tokio, Ghidra, DTrace
- Also
- Rust, Hacker News
The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Oxide and Friends. The episode itself belongs to its publisher.