-
Notifications
You must be signed in to change notification settings - Fork 724
Move 3.16 to ubuntu-latest
#11296
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
Move 3.16 to ubuntu-latest
#11296
Conversation
f398be6 to
660ebc8
Compare
|
At the very beginning of the log GitHub logs versions of runner / images it uses: Is there any difference in configuration between successful and failed runs? |
|
I don't see one. https://github.com/haskell/cabal/actions/runs/19380948375/job/55459273250 is an example; I matched it with https://github.com/haskell/cabal/actions/runs/19443824531/job/55633432198 (both ghc 9.2.8). 3.16 still runs on Ubuntu 22.04; |
660ebc8 to
f19da8e
Compare
For some reason 22.04 is now randomly failing with old ghcs (that should have been built on it??) with GLIBC and GLIBCXX versioning errors. This doesn't show up on `master`, and this PR was failing until I bumped it up to ubuntu-latest as well. As with `master`, `validate-old-ghcs` still uses ubuntu-22.04 because they need `libtinfo6` which isn't available on 24.04.
|
(Moritz suggested to check for cache issues). Looking at https://github.com/haskell/cabal/actions/runs/19446903122/job/55643460914?pr=11296#step:9:6, the cache key is just You probably want to extend cabal/.github/workflows/validate.yml Line 144 in 2b4cccb
with GLIBC version as a part of the key.
|
|
I'd already flushed the caches. I don't think that sharing is the problem, because it's happening on this PR which isn't a backport from (I do wonder if we can improve cache usage by replacing the SHA with the image name, allowing caches to be shared between PRs; I don't think that can break anything, but would need significant testing. Also I'd have to make sure the cache didn't include |
Could it be the case that some jobs in this PR use 22.04 and some 24.04? If I'm not mistaken, "Bootstrap" ones are on 24.04 and "Validate" are on 22.04. |
|
Oh, hm, we have a fallback cache set. That might inappropriately be bootstrapping the cache from the wrong image; I'll have to look at how (or if!) we make those fallbacks and see if I can build the image name into it. |
|
Bootstrap caches are separate (the cache keys start with "Bootstrap-"). That's one reason we're blowing out our cache limit so often now. |
|
Hm, actually, sharing caches between PRs will cause thrashing (probably not corruption, I hope) if multiple PRs are building at the same time. I think I'll just replace runner.os with matrix.os for now. (In a separate PR, since that should be done on |
|
I suspect that |
|
I know, but I couldn't find a context which supplies anything better and I can't use a shell-out in a cache key. And otherwise threading stuff like that between jobs that need to share a cache is rather painful (I hit soooo many pain points while working on #10503…). |
f19da8e to
dcdd696
Compare
Mikolaj
left a comment
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.
Let's do it!
|
Okay, ugly hack but it looks like I can expose a version via a step output. Problem then becomes how to do it for 3 platforms. (I'm also going to add arch, which we don't currently care about but will matter when I bring back Intel Mac validates or we at some point extend testing to e.g. AArch64 Linux, both of which will lead to the same mayhem we've been seeing here.) |
|
I think arch is covered by GHC ABI version and should lead to different package hashes, so they won't clash even if mixed in the same cache. |
|
Right, but it'll make the cache contention/thrashing worse (cf. previous comment about sharing them across PRs). If GitHub's gonna prune caches aggressively, we need to be more aggressive about not wasting our cache space. |
|
And yes, that means my comment about adding them was wrong. Sorry, too many things in flight at the moment. |
|
Ugh, Mergify's started applying #reviews >= 2 to release branch PRs even though branch protection correctly says only 1 is needed. Hacking around… |
|
Mmm, maybe I'm misremembering. But branch protection says only one is needed, so Mergify should accept that. |
For unknown reasons, GitHub's
ubuntu-22.04randomly breaksvalidatefor older supported ghcs with shared object versioning errors forGLIBC(alex) andGLIBCXX(text). Force 3.16 up toubuntu-latest, which doesn't show the problem (it hasn't happened onmasteror PRs targeting it, only on3.16branch).Template B: This PR does not modify behaviour or interface
E.g. the PR only touches documentation or tests, does refactorings, etc.
Include the following checklist in your PR: