IntersectMBO / IntersectMBO/ouroboros-consensus

Prevent the Mempool test shrinker from rendering some transactions invalid

Open
#700 0 comments 0 reactions 0 assignees View on GitHub
better-tests
Dominant language
Haskell
Stars
67
Forks
43
Avg merge
5d 13h
Merged PRs (30d)
43

Description

When debugging input-output-hk/ouroboros-network#1779, we were confused for a moment because the shrinker was masking the real error. After shrinking (i.e. what we initially saw), the error was a property failure: all transactions were rejected with `MissingInput`. We eventually realized that before shrinking, the failure was an `error` exception due to an `Invalid initial transaction`, which itself was caused by the hash collision.

This Issue is to refine the shrinker so that it does not introduce failures. Specifically, it should either not make changes that make previously-valid transactions invalid or it should remove them/update their expectation flag/etc when it invalidates them.

It may be that the rather insidious circumstance of a hash collision was causing that particular misbehavior. In that case, it might be fine to summarize in this Issue why more usual circumstances won't cause the shrinker to misbehave and then close Issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.