# Futurelock

- Show: [Oxide and Friends](https://hardwarepodcasts.com/podcast/oxide-and-friends)
- Published: 2025-11-07
- Length: 1h 37m
- Episode: 31
- Page: https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock
- Listen: https://share.transistor.fm/s/fa798393

## Summary

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.

## Chapters

- [0:00](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=0) Introduction: Futurelock and the debugging odyssey
- [6:16](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=376) Symptoms: Nexus instance hangs during live update
- [11:37](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=697) Debugging: DTrace, core dumps, and Ghidra analysis
- [28:47](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=1727) Breakthrough: Sean Klein's leading question and John Gallagher's insight
- [44:56](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=2696) Root Cause: Futurelock explained via select and mutable futures
- [1:04:04](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=3844) Postmortem: Blameless analysis and RFD 609
- [1:20:14](https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock#t=4814) Community Response: Hacker News, LLMs, and defensive coding

## Topics

- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)
- [Microcontrollers & dev platforms](https://hardwarepodcasts.com/topic/microcontrollers-and-platforms)

## Most relevant to

large enterprises

## Mentioned

- Oxide Computer Company (company)
- Tokio (tool)
- Ghidra (tool)
- DTrace (tool)
- CORB (product)
- Rust (other)
- Hacker News (other)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/oxide-and-friends/2025-11-07-futurelock. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Oxide and Friends.
