Recent fixes for bugs detected by fuzzing has resulted in improved validation for Apply, for example #13602. Errors during Apply result in panic as raft is unable to progress. Fuzz tests detect those panics within apply function, however this not the only place that fix should be fixed.
Detecting invalid raft message during apply is very late stage. Such messages should be rejected on much earlier stage. Recent fixes has showed that we have no good mechanism to ensure consistency validating messages.
Goal: Ensure that API rejects all requests that would be rejected during apply or caused panic.
Ideas for implementation:
- We could write a fuzzer test that will generate a lot of randomly filled structs representing API rpc. With rpcs we can push them through both validators and check if they result any inconsistencies.
cc @ptabor