-
Notifications
You must be signed in to change notification settings - Fork 1.6k
ci: added miri job #1103
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
ci: added miri job #1103
Conversation
Co-authored-by: lambdaclass-user <[email protected]>
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## main #1103 +/- ##
==========================================
+ Coverage 74.63% 74.77% +0.13%
==========================================
Files 321 333 +12
Lines 34954 35518 +564
==========================================
+ Hits 26088 26558 +470
- Misses 8866 8960 +94
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
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.
looks like it has problems with the fuzz tests, doesn't look like UB.
so perhaps we annotate them with miri ignore?
maybe we don't want to run this on every PR
wdyt @onbjerg ?
Yep, there's unsupported functionality within |
I believe the tokio crate has some comments regarding miri and tokio::test tokio::main in its codebase |
Co-authored-by: lambdaclass-user <[email protected]>
Co-authored-by: lambdaclass-user <[email protected]>
I did some investigation with the help of @fkrause98 and we don't see a way out from this right now:
We could theoretically implement
Possible ways of action:
New ideas and insight about this are welcome, we may be missing something |
Thanks for investigating this @xqft - appreciate the detailed writeup & sharing of the link above.
This seems like a good direction. Run the tests and parse the results. I'm seeing the following on testfuzz, which seems easy to ignore. What is the equivalent for tokio tests? We could filter these out.
|
I think in extension to above, we should probably not fail CI if this job fails seeing as miri is unstable/experimental? @mattsse |
@gakonst using the |
Co-authored-by: lambdaclass-user <[email protected]>
Co-authored-by: lambdaclass-user <[email protected]>
Co-authored-by: lambdaclass-user <[email protected]>
Co-authored-by: lambdaclass-user <[email protected]>
I arrived to this solution by creating a custom github action, it works by:
This is all really crumbly, the action facilitates things a bit but miri is slow and unstable (oficially experimental), I would only recommend to run this job maybe in a set apart branch that's up to date with main. Maybe a CI job with miri should be scraped entirely and just run it locally with a limited amount of tests each time. |
Co-authored-by: lambdaclass-user <[email protected]>
Co-authored-by: lambdaclass-user <[email protected]>
oof it looks like it doesn't like FFI either |
We can integrate this with nextest which is pretty nice: https://nexte.st/book/miri.html |
I discarded nextest because it doesn't yet support tests run in json output |
@xqft what's the plan here? I think if we don't have a "clean" way of integrating with success, let's close and revisit later. |
@gakonst I'm currently not active in reth because of other priorities, but I think miri for now is too incompatible with reth to be added to the CI, and ignoring those incompatibilities doesn't work too well. Agreed with revisiting later. |
agreed - thank you for taking the time in digging into this, I learned something. |
Closes #1088