Skip to content
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: Use Ubuntu 22.04, drop 18.04 #1746

Merged
merged 8 commits into from
Nov 22, 2022
Merged

CI: Use Ubuntu 22.04, drop 18.04 #1746

merged 8 commits into from
Nov 22, 2022

Conversation

RyanGlScott
Copy link
Contributor

GitHub Actions has deprecated its Ubuntu 18.04 runners, and they will be removed by December 1, 2022. Moreover, GitHub Actions now offers Ubuntu 22.04 runners. It seems like a good time to upgrade our CI accordingly.

Somewhat annoyingly, the haskell Docker images that we use in our Dockerfiles use such an old version of Debian that their version of glibc is incompatible with any of the what4-solvers built for Ubuntu 20.04 or 22.04. As a result, I switched them from the haskell Docker image to the ubuntu one. This required some minor tweaks to how dependencies are installed, but nothing too serious.

Fixes #1741. By upgrading the version of the solvers being used, this also fixes #1744.

Copy link
Contributor Author

@RyanGlScott RyanGlScott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've pushed an experimental commit that attempts to port s2nTests over to Ubuntu 22.04. I'm not especially confident that it will work, but I'm interested to see what CI says nonetheless.

curl \
gcc \
git \
llvm-3.9 \
llvm-12 \
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea what effect this will have.

# Set executable and run tests
RUN chmod +x rootfs/usr/local/bin/*

FROM haskell:8.8.4-stretch AS build
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm very confused about this Dockerfile in general—see #1747—but perhaps it will suffice for now just to mirror the changes to the main SAW Dockerfile.

GitHub Actions has deprecated its Ubuntu 18.04 runners, and they will be
removed by December 1, 2022. Moreover, GitHub Actions now offers Ubuntu 22.04
runners.  It seems like a good time to upgrade our CI accordingly.

Somewhat annoyingly, the `haskell` Docker images that we use in our Dockerfiles
use such an old version of Debian that their version of `glibc` is incompatible
with any of the `what4-solvers` built for Ubuntu 20.04 or 22.04. As a result, I
switched them from the `haskell` Docker image to the `ubuntu` one. This
required some minor tweaks to how dependencies are installed, but nothing too
serious.

Fixes #1741. By upgrading the version of the solvers being used, this also
fixes #1744.
@chameco
Copy link
Contributor

chameco commented Oct 17, 2022

(This now closes #1747)

@weaversa
Copy link
Contributor

weaversa commented Oct 19, 2022

Would you also be willing to update the Dockerfile for saw-remote-api to 22.04? I see you did, thank you!

@RyanGlScott
Copy link
Contributor Author

Thanks for finishing this one, @chameco!

@RyanGlScott RyanGlScott added the PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run label Oct 24, 2022
@RyanGlScott
Copy link
Contributor Author

Hm, the blst proofs are now failing (due to a timeout?)

@chameco
Copy link
Contributor

chameco commented Oct 25, 2022

Oh, gross. I'm going to queue BLST again to see if it's CI being inconsistent, then test locally and bisect if necessary.

@chameco chameco removed the PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run label Oct 25, 2022
@chameco
Copy link
Contributor

chameco commented Oct 25, 2022

Excitingly, on the rerun the BLST job succeeded... (the red X is due to the Mergify job failing, as I removed the ready-to-merge label).
It doesn't appear to be close to the timeout, either, so I wonder what's causing the inconsistency.

@weaversa
Copy link
Contributor

When this was updated to 22.04, the version of what4-solvers was also updated. Could it be that one of the newer solvers isn't as powerful on a specific problem, or is breaking where it didn't used to?

@RyanGlScott
Copy link
Contributor Author

Yes, I suppose that is possible. snapshot-20210917 uses Z3 4.8.10 while snapshot-20220902 uses Z3 4.8.14.

@weaversa
Copy link
Contributor

Just FYI, we're waiting on this for some things...are there plans to push this soon?

@eddywestbrook
Copy link
Contributor

Just FYI, we're waiting on this for some things...are there plans to push this soon?

@chameco is still debugging some random build failures he is seeing in CI. Sam, can you give Sean more detail on what's going on?

@RyanGlScott
Copy link
Contributor Author

I just wanted to chime in to say that if it is necessary, I can think of a way for what4-solvers to include multiple Z3 versions in case there really is some sort of flakiness with Z3 4.8.14. That being said, it might be the case that we were just downloading the wrong Ubuntu version binaries in blst-entrypoint.sh, as the CI for 8095d01 (which corrects the version being downloaded) passed on the first try.

@chameco
Copy link
Contributor

chameco commented Nov 21, 2022

I'm hoping 8095d01 resolves this and we can merge today, although it's hard to be sure given the apparent nondeterminism. We'll see what CI says after merging master I suppose.

@weaversa is your need related to the SAW Docker container update here? If so it might be worth pushing our CI/solver related woes into another issue and merging this ASAP.

@weaversa
Copy link
Contributor

@weaversa is your need related to the SAW Docker container update here? If so it might be worth pushing our CI/solver related woes into another issue and merging this ASAP.

Thanks! I'm just hoping to have an updated saw-remote-api Docker container.

@RyanGlScott
Copy link
Contributor Author

The CI for 8095d01 passed. I also restarted the blst job once and it passed again, so I'm cautiously optimistic about having identified the underlying issue that was causing the flakiness. I'll go ahead and merge this—if there are any CI issues that arise later, we can follow up then.

@RyanGlScott RyanGlScott added the PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run label Nov 22, 2022
@mergify mergify bot merged commit 200d0e5 into master Nov 22, 2022
@mergify mergify bot deleted the ubuntu-22.04 branch November 22, 2022 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Updated solvers CI: Upgrade the Ubuntu versions used for binary distributions
4 participants