-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
cirrus,ci: default to overlay
if using vfs
#18822
cirrus,ci: default to overlay
if using vfs
#18822
Conversation
d1a406d
to
c292a39
Compare
@Luap99 @cevich @edsantiago @nalind PTAL |
77abac0
to
c632ac5
Compare
c632ac5
to
5f4d924
Compare
5f4d924
to
7f638f0
Compare
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.
This is frighteningly complicated and duplicatey. Can it be done like this instead?
diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh
index f3068787c..b3da90147 100755
--- a/contrib/cirrus/setup_environment.sh
+++ b/contrib/cirrus/setup_environment.sh
@@ -100,6 +100,17 @@ esac
# shellcheck disable=SC2154
printf "[engine]\ndatabase_backend=\"$CI_DESIRED_DATABASE\"\n" > /etc/containers/containers.conf.d/92-db.conf
+# Blah blah include a FIXME comment to reevaluate after (e.g.) 2023-12-31
+buildah_storage=$(buildah info --format '{{.store.GraphDriverName}}')
+if [[ "$buildah_storage" != "overlay" ]]; then
+ conf=/etc/containers/storage.conf
+ if [[ -e $conf ]]; then
+ die "FATAL! INTERNAL ERROR! Cannot override $conf"
+ fi
+ msg "Overriding $conf, setting overlay (was: $buildah_storage)"
+ printf "...driver=overlay\n" >$conf
+fi
+
if ((CONTAINER==0)); then # Not yet running inside a container
# Discovered reemergence of BFQ scheduler bug in kernel 5.8.12-200
# which causes a kernel panic when system is under heavy I/O load.
7f638f0
to
82f00ae
Compare
@edsantiago Thanks looks much better, I have a doubt about Also I previously tried setting similar check in |
PS f38 flake was unlinkat/EBUSY. I restarted. |
if [[ "$buildah_storage" != "overlay" ]]; then | ||
conf=/etc/containers/storage.conf | ||
msg "Overriding $conf, setting overlay (was: $buildah_storage)" | ||
printf '[storage]\ndriver = "overlay"\nrunroot = "/run/containers/storage"\ngraphroot = "/var/lib/containers/storage"\n' >$conf |
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.
Why are all the other things (runroot, graphroot) needed?
And, please reinstate the check for existing storage.conf, thanks.
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.
| Why are all the other things (runroot, graphroot) needed?
@edsantiago When default file is selected and runroot
is empty we hit error https://github.com/containers/storage/blob/main/types/options.go#L159 here, this needs to be fixed on c/storage
I'll open a different PR on c/storage
for this.
82f00ae
to
ae2faa2
Compare
Since this only applies to debian (and likely, only for a short while), consider moving this block under the debian-host setup case - around line 142-147. Also, I'm guessing this only impacts a very specific and known range of buildah versions. Perhaps consider adding a |
overlay
for debian envoverlay
if using vfs
ae2faa2
to
c0cf74e
Compare
@cevich done added a note. |
LGTM but let's wait for CI on #13808 |
CI still failing in what looks like exactly the same way, in buildah treadmill, even with your PR cherrypicked. I'll try to rerun in terminal and figure out what happened. |
contrib/cirrus/setup_environment.sh
Outdated
# for more details. | ||
# TODO: remove this once all CI VM have newer buildah version. (i.e where buildah | ||
# does not defaults to using `vfs` as storage driver) | ||
buildah_storage=$(buildah info --format '{{.store.GraphDriverName}}') |
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.
When run as root, this always returns overlay
. I'm sorry, I didn't know that. I guess it's OK to revert to checking for "debian", unless someone can think of a better test.
c0cf74e
to
21694bf
Compare
@edsantiago I reverted to old commit, could you cherry-pick this one ? |
gah, no, that one is really not acceptable. I am testing a simpler fix in #13808 right now. |
just stay tuned. Once #13808 passes I will comment here. (Probably very, very late your time, so just check back in tomorrow) |
21694bf
to
ec2034b
Compare
Good news, bad news. Good news: debian rootless passed. Bad news: new failure seen in remote debian root and also remote f38 aarch64 root:
After that, everything is hosed: nothing ever works again, all tests fail. It looks a heck of a lot like unlinkat/EBUSY, except this one is unmounting/EINVAL. I'm debating right now if I should re-run them. UPDATE: yep, they were flakes. Flakes I've never seen before, hence, probably a problem with the new vendoring and probably something we'll be seeing soon in podman. |
@flouthoc here's a patch you can use. Please apply it exactly precisely 100% as it is there, no edits. That will guarantee that it will pass (modulo flakes) in the treadmill. |
In debian environment we are hitting an edge-case where older buildah version is not compatible with newer podman version because both of them are using different storage driver. I.e * Podmand defaults to native `overlay`. * Older buildah version defaults to `vfs`. See discussions below for more details * containers#18510 (comment) Co-authored-by: Ed Santiago <[email protected]> Signed-off-by: Aditya R <[email protected]>
ec2034b
to
02432fc
Compare
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.
LGTM
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: edsantiago, flouthoc, Luap99 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
/hold cancel |
In debian environment we are hitting an edge-case where older buildah version is not compatible with newer podman version because both of them are using different storage driver.
I.e
overlay
.vfs
.See discussions below for more details
Does this PR introduce a user-facing change?