Skip to content

Fuzz testing with fault injection #2736

@brson

Description

@brson

The semantics of rust tasks allow them to fail unexpectedly. Currently the two scenarios where this happen are:

  • Immediately before or after any yield (e.g. send and receive). In the future the compiler will insert yield points as well
  • When stack growth fails

The story for how tasks should cope with this are unclear. Right now there is a function unkillable which creates a scope where tasks cannot be killed by other tasks, but it does not do anything about hitting the end of the stack.

There is a lot of unsafe code in the core and standard libraries that is not aware of its obligations to cope with random failure.

I would like to instrument the runtime and core libraries to allow failure to be injected at various points, then create a tool that takes a crate of tests and runs them while poking at them with the fail stick.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P-lowLow priority

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions