IntersectMBO / IntersectMBO/ouroboros-consensus
Prevent the Mempool test shrinker from rendering some transactions invalid
- 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
Assessment
This issue has not been assessed yet.