-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Attempt to address some of the consistently flaky integration tests #3440
Conversation
99a169b
to
cadf7f8
Compare
748a686
to
687d91c
Compare
687d91c
to
28e3715
Compare
- Introduce ``RequestTimedOut`` and raise this for requests with timeout messaging. - This allows us to be more specific on flaky tests that fail with node timeout errors. Specify ``RequestTimedOut`` as the expected exception in relevant tests marked with ``@pytest.mark.xfail``.
28e3715
to
8965da1
Compare
d631301
to
71af107
Compare
71af107
to
6d80681
Compare
a3ce6dc
to
5c581e4
Compare
Ok @kclowes, @pacrob, @reedsa this should be ready for review. Let me know if you have any questions. This commit fixes a wrong check in some tests that the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🐑
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
What was wrong?
Some of our integration tests dealing with the way
geth --dev
mines within an interval window flaky and still not passing with a flaky decorator in some cases. I'm going to try to run this branch many times and try to address them here.How was it fixed?
xfail
+strict=False
(899a909)gasPrice
on dynamic fee transactions was equal to themaxFeePerGas
. Really, it's the minimum between themaxFeePerGas
andmaxPriorityFeePerGas
+baseFeePerGas
(block), which is the "effective gas price". Use<=
in that comparison.Feature:
Introduce a
RequestTimedOut
exception for when requests to the node time out.Use this exception in
xfail
tests that fail specifically with a client-side timeout to distinguish the fail case. It isn't possible to usexfail
andflaky
on the same test out-of-the-box and have them work well enough. This PR adds a decorator that:max_runs
andmin_passes
and retries the test according to flaky rules.flaky
retry, if this particular exception is raised, itxfails
the test with a givenreason
string argument, as is also accepted byxfail
.What this means is that we can retry a test up to
max_runs
times, but if by the end of it we have some flaky exception case that is sometimes expected, wexfail
the test and it silently fails for that test run.Todo:
Cute Animal Picture