-
Notifications
You must be signed in to change notification settings - Fork 370
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug-Candidate]: Sequences from corpus do not adhere to time/block delay settings #1231
Comments
This is expected, the echidna configuration will not enforce anything in the corpus. I think the same will happen with the max ether sent. Perhaps this can be a feature of fuzz-utils, where a certain corpus is "modified" to do X instead of Y. @rappie Can you please start a discussion there for this feature? |
Personally I would expect the config settings to be overruling everything, so I would consider this a bug or at least unexpected behaviour. I've had similar issues in the past where i had to discard my corpus because I needed to blacklist certain functions (that were still in the corpus). Is there no possibility check sequences from the corpus against the allowed settings before they are executed? |
@rappie What is your expected behavior here? My intuition is to agree with @ggrieco-tob that the corpus should still run with its original config. Are you suggesting to modify the corpus based on the new config, or to skip sequences that don't have compatible configs? Modifying the corpus seems like it may cause sequences to unexpectedly pass only due to the config change, but skipping non-applicable ones seems ok. Based on crytic/fuzz-utils#51 I think you are suggesting modification? Interested in better understanding your use case |
The behaviour I expect is that the config leads, meaning sequences in the corpus which are illegal according to the current config should be skipped. I'm not a fan of rewriting the corpus, this seems error prone and could lead to unpredictable/unwanted behaviour. My reasoning behind this:
|
I'm still not sure about this. Let's suppose you do a campaign using |
I'm not suggesting Echidna should ever reinterpret the corpus. In this case it would look at the transactions and consider them all invalid, skipping them all and you're basically starting with a new corpus. This is an extreme example though, and in this case it would indeed make sense to just discard the corpus. The scenario I'm thinking about with filtering senders is if you are using a closed system of actors (lets say actor A,B,C) and you want to debug an issue by reducing the amount of actors and removing actor C. In this case you don't want the corpus to include any transactions by actor C because it will mess up the closed system. You don't want to discard the corpus either because you are just temporary debugging, plus it might contain interesting transactions/values. |
Describe the issue:
Sequences that have long time delays are still used, even in cases where I've changed the settings to this:
Code example to reproduce the issue:
Version:
Echidna 2.2.3
Relevant log output:
No response
The text was updated successfully, but these errors were encountered: