Skip to content

Fuzz testing with fault injection #2736

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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