Surviving Chaos
  • Surviving Chaos
  • A Brief Intoduction to Chaos
    • Principles of Chaos
    • Kinds of Failure
    • Goals and Non-goals
  • Infrastructure Familiarization
    • Service Resilience
    • Monitoring and Logging
    • Generating Work & Data
  • Assembling Your Kit
    • Using a Cloud Node
    • Using a Private Node
  • A Menagerie of Tools
    • 1000 Ways to Die (`kill`)
    • Failing the Network (`ip`)
    • Controlling Traffic (`tc`)
    • Isolating and Parititioning (`iptables`)
    • A Fuzzy Schedule (`nmz`)
    • A Disfunctional Docker (`pumba`)
  • Failure as a Feature
  • Continous Chaos (CI/CD)
    • Example: Schrödinger
  • Resources / References
Powered by GitBook
On this page
  1. A Menagerie of Tools

A Fuzzy Schedule (`nmz`)

Learn to use Namazu, a fuzzy scheduler.

PreviousIsolating and Parititioning (`iptables`)NextA Disfunctional Docker (`pumba`)

Last updated 6 years ago

Namazu is a fuzzy scheduler that mutates Ethernet packets, Filesystem events, and thread interleaving. As well as injected faults.

Scheduling problems are often subtle and rare. Namazu works best with repeated testing.

Typically you'll work with it like a Docker container:

nmz container run -it --rm ubuntu bash

Inside you can run, for example, async networking stack test suite:

apt update && apt install --yes build-essential git rustc cargo
git clone https://github.com/tokio-rs/tokio
cd tokio && cargo test --all

Exercises

  • Run your favorite projects test suite in Namazu.

  • Explore the bugs discovered by Namazu that has recorded: , try reproducing one.

https://github.com/osrg/namazu/#found-and-reproduced-bugs