-
Notifications
You must be signed in to change notification settings - Fork 10
Codspeed 2.8 hangs or kills the CI runner #79
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
Comments
We just released v2.8.1 statically linked to avoid issues with further issues with Glibc. On an unrelated note, we also saw your workflow is using the version 2 of the codspeed action, we have a temporary issue with backward compatibility that makes those workflows temporarily delayed. If you can bump the action to version 3 this will be fixed directly |
@tan3-netapp we're trying to understand the issue. Can you try with 2.8.1 and the latest runner version (v3)? As mentioned in my previous message, there is a slight backward compatibility issue on our side that might explain the hanging you're seeing but I'm just guessing. |
Here is an attempt with 2.8.1 shotover/shotover-proxy#1870 you can see that:
|
Thanks for the information. I can reproduce and iterate on my end. The job exits with a code 143, aka an external SIGTERM. Looks like an OOM issue. The commit you linked seems to be the root cause, but I cannot pinpoint why. The base idea of this change was to switch from using cargo as a library in our code to instrumenting the We'll make sure to keep you updated when we find something, in the meantime, you can keep using the |
Hello @rukai, here is what I've found. The root issue is that when one runs However, we want to stick to the change made in 2.8, your repository happens to be an edge case where building the I have filed an issue in the cargo repository to see if we can upstream a better behavior for In the meantime, the workaround would be to create a dedicated crate for your benchmarks, that would only hold the benchmarks, see here for an example on how we did it in this repo Then, you can change your CodSpeed CI action to only build the crate holding the benches. In this repo, we do this here By the way I noticed that in your current workflow, you also build benches for your Let me know if the workaround suits you. If we get further reports of this change we may yank this release and create a major |
Thankyou for investigating the issue! It is possible that the memory usage of cargo-codspeed itself on top of the full build is sending it over the edge. Does codspeed do anything that might increase memory usage of the build itself? My understanding is that the codspeed stable bench magic happens at run time not compile time, so I imagine this wouldnt be the case. Ah well, I'll just work on the assumption that the little bit of extra memory from cargo-codspeed pushes it over the edge and we were about to hit this on the nextest compile as well. So that leads me to the solution.
Instead I would rather:
The ability to set the cargo |
From what I tested, the biggest change seems to come from the debug symbols that we explicitly activate for codspeed to be able to build callgraphs. When I build your project with RUSTFLAGS="-C debuginfo=2 --cfg codspeed" "cargo" "build" "--all-targets" "--profile" "release" "--package" "shotover" Memory usage peaks at 6.5GB, while RUSTFLAGS="--cfg codspeed" "cargo" "build" "--all-targets" "--profile" "release" "--package" "shotover" Memory usage peaks at 2GB Mesurement was made using zsh's time function
then Maybe not the most precise measure, but I dont know a more convenient alternative. -j definitely seems like something we can add to |
Ah! Well that explains it! Zsh time looks very handy, thanks, I was just eyeballing it from htop |
Hey we're on it. Should be released by beginning of next week. We'll let you know! |
Just released 2.10.0, which supports the |
Great, thanks for all your help! |
Currently, codspeed 2.8 hangs or kills the CI runner when being run as the benchmark check of the
shotover-proxy
repository.The latest working version of codspeed for this job is 2.7.2.
To reproduce the issue, please look into this change for more information.
The text was updated successfully, but these errors were encountered: