Skip to content

Conversation

@elopez
Copy link
Member

@elopez elopez commented Jul 11, 2025

The current shrinking implementation has a bug/limitation: it always tries to shrink the sender. In other words, if a transaction has a sender that is not minimal, Echidna will try to reduce it. However, the transaction might require a different sender to still cause the assertion failure, and the fact that Echidna will unconditionally try to lower it might cause the shrinking to get 'stuck'.

This allows the sender shrinker to keep the transaction source the same with some probability, allowing the shrinking to proceed in such cases.

@elopez elopez requested a review from arcz as a code owner July 11, 2025 21:17
@elopez
Copy link
Member Author

elopez commented Jul 11, 2025

This is a lighter version of #1385 to unblock users while we discuss the larger refactoring.

elopez added 2 commits July 11, 2025 18:20
The current shrinking implementation has a bug/limitation: it always
tries to shrink the sender. In other words, if a transaction has a
sender that is not minimal, Echidna will try to reduce it. However,
the transaction might require a different sender to still cause
the assertion failure, and the fact that Echidna will unconditionally
try to lower it might cause the shrinking to get 'stuck'.

This allows the sender shrinker to keep the transaction source the
same with some probability, allowing the shrinking to proceed in
such cases.
@elopez elopez merged commit caebbf6 into master Jul 12, 2025
19 checks passed
@elopez elopez deleted the fix-1224-small branch July 12, 2025 00:59
@elopez elopez linked an issue Sep 6, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug-Candidate]: Echidna can get stuck while shrinking

3 participants