Fuzzing for finding concurrency bugs essentially boils down to:

  • Identify interesting points in program execution.
  • Automatically introduce sleep statements to change thread-schedules.
  • Rinse and repeat several times and there’s a good chance you’ll find a concurrency bug that’s otherwise hard to spot.