-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Proposal: Stop caching anything with CircleCI for Exchange packs #22
Comments
I'm so +1 on this it isn't even funny. Been bit by this more than once recently, both with the pip cache and now currently with the apt cache. Problems like this cause you to have to touch every repo... Doing this may slow down the pack builds slightly but will increase maintainer happiness (especially mine) tremendously. It's been so bad I've stopped looking into build caches for our internal builds because of the problems we're experiencing in StackStorm. I agree, let's start with exchange packs, this should be a very low impact change. |
What is biting people?
I feel that caching done right should be dependencies, not the library.
… On May 16, 2020, at 5:20 PM, Nick Maludy ***@***.***> wrote:
I'm so +1 on this it isn't even funny. Been bit by this more than once recently, both with the pip cache and now currently with the apt cache. Problems like this cause you to have to touch every repo...
Doing this may slow down the pack builds slightly but will increase maintainer happiness (especially mine) tremendously.
It's been so bad I've stopped looking into build caches for our internal builds because of the problems we're experiencing in StackStorm.
I agree, let's start with exchange packs, this should be a very low impact change.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
I'm wondering how the overall and aggregated build timing for packs will look like if we remove the caching alltogether? At the same time how frequently we deal with the caching issues in StackStorm Exchange org? @blag BTW as noted in #7 (comment) it doesn't look like we're on CircleCI OpenSource plan yet for StackStorm-Exchange Github org. |
We dig a little bit deeper with @nmaludy in StackStorm-Exchange/stackstorm-napalm#65 and spot several clear problems and conclusions from them:
|
Based on further SSH debug research in StackStorm-Exchange/stackstorm-napalm#65 (comment), looks like the So what's happening there is that apt repository metadata is based on a very old state where it points to the package URLs which were already deleted from upstream repos. You might find similar if you take unsupported/old I guess for now our short-term workaround to fix StackStorm-Exchange repos is to add |
@armab I will work today on creating PRs with the With regards to previous cache problems, i don't have PRs, but several months ago there was a change in one of the I'm still +1 for not relying on cache. I agree with @armab on installing system-level dependencies in the container. I also agree with others that have mentioned our dependency system could use an overhaul (not biased here, i just am feeling the pain and would welcome a change). |
@nmaludy creating PR for all the Exchange repos would be really time consuming. I think we can just commit the build fix directly to master (like StackStorm-Exchange/stackstorm-napalm@179dfe1), assuming there is no potential code/diff conflict. @blag BTW maybe you could share any script samples that would iterate over the stackstorm-exchange packs? |
OK looks like https://github.com/StackStorm-Exchange/index/blob/master/v1/index.json#L6 is the object we can iterate on. |
Pushing change to all repos started this morning. Should be done sometime today. As a side note, i could have done this very fast, except that the Exchange Deploy is single threaded and if >1 thing tries to deploy concurrently the build fails. Right now i'm having to sleep ~5m30s between each push so we space it out enough for deploys to finish. Would be super nice if i could just push all of the repos at once, then let the build system figure it out. |
We've had a few difficult-to-debug problems with caching in our Travis-CI and CircleCI builds, both with packs in Exchange, and with ST2 itself.
Recent-ish issues around CircleCI caching:
(I know there are more, but I'm pressed for time at the moment, I'll fill this list in later - also @nmaludy might have a few ideas for this list)
Cache coherency, along with naming things and off-by-one errors, are one of the two hard problems in computer science, and we seem to invite these problems into our lives when their benefits are mostly rare (thinking about Exchange packs) and marginal (especially when compared to how slow the rest of CircleCI builds are).
I propose that, along with removing
FORCE_CHECK_ALL_FILES
in proposal #7, that we remove any caching in our CircleCI jobs - this means no pip/PyPI cache, no RPM caching, and no Apt caching. Furthermore, a common feature request for CircleCI is "how do I generate the cache key from multiple files", and as of this writing there simply isn't a good way to do so.I'm intentionally restricting this proposal to just packs on Exchange. The main ST2 builds happen frequently enough, and receive enough attention from multiple "frequent flier" troubleshooters, to have relatively quick fixes, so the benefit of caching there might actually outweigh the additional test complexity and cost of breakage.
Our pack CI is complicated enough without having to also deal with CircleCI caching, so let's keep our tests as simple and straightforward as we possibly can, even if that means they take a bit longer to complete and use a bit more bandwidth.
The text was updated successfully, but these errors were encountered: