Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
fed7477 to
c8c8db8
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
@tonistiigi It only overrides Unfortunately, just removing |
|
@cyphar |
|
The issue seems to be that
Now, gcc tries to use x86_64 gcc with s390x cflags. |
|
@kolyshkin I don't think xx writes |
|
Ideally we would just do
So we need to parse I suspect Docker doesn't build for |
56a0109 to
d60f33d
Compare
|
Modified this to just set CC and |
|
Full(er) list of test failures:
Most failures are related to not getting output from a container run. As I can't repro this locally I'm not sure how to bisect it. |
|
Same here, if I run things locally (changing the setting so the container uses the iptables uses the nft backend, as that is what my host is using) those tests work fine here too. However, it is 100% reliable that runc 1.2.x fails here on CI and 1.1.x works just fine. @thaJeztah do you have any pointers on how to further debug this issue we observe only on CI? I can try to create a VM with ubuntu, but I hope there is a better way (I don't have any VM setup ready to go now). |
That's exactly what I was doing (Ubuntu 20.04 in vagrant libvirt) and I still can't repro. I suspect there are either some limits in CI that we hit, or maybe something like apparmor config. |
|
The common part between most (or all?) of the failures is not getting the container's output. Also, I tried again and failed to repro this locally in a Ubuntu 20.04 VM. |
dmesg may show some hints? |
|
@AkihiroSuda In my tests, apparmor didn't make the difference. I've also tried to create a VM in Azure (as github actions runs in Azure IIRC) just in case there was some special ubuntu setup in Azure, however those tests pass fine. The only change I had to do in the Azure VM and locally for some test to not fail is to use the iptables nft backend: rata@f97ef77. As I was saying in other issues, the failure in CI seems real, though. It seems 100% reliable that the updated runc fails the moby tests and the failures seem to be always the same. Using runc 1.1 the moby CI seems to pass reliably. I'm thinking the secret might be either trying to check dmesg on CI (my commits for that didn't work, nothing is printed) or in the .github folder with how it is set-up. @AkihiroSuda @thaJeztah @kolyshkin any other ideas to try? |
Maybe bisect (manually? 😞 )? |
|
Possible reasons:
|
|
I'm trying to bisect the commits in #48366 but it is quite painful due to compilation failures of dmz and other irrelevant CI failures |
d60f33d to
362f5fa
Compare
|
Just found out something I was doing back in 2018 (commit ad2f88d) and decided to try it here. |
362f5fa to
c836c60
Compare
c836c60 to
ecb4e6f
Compare
47719fc to
3129247
Compare
Cherry-picked several WIP commits from https://github.com/moby/moby/commits/b0a592798f4d9d7162f8aedca89ada3a29d60e2c/ Originally-authored-by: Rodrigo Campos <rodrigoca@microsoft.com> Co-Authored-by: Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Release notes: final: https://github.com/opencontainers/runc/releases/tag/v1.2.0 rc.3: https://github.com/opencontainers/runc/releases/tag/v1.2.0-rc.3 rc.2: https://github.com/opencontainers/runc/releases/tag/v1.2.0-rc.2 rc.1: https://github.com/opencontainers/runc/releases/tag/v1.2.0-rc.1 Breaking changes and deprecations are included below; Breaking changes: Several aspects of how mount options work has been adjusted in a way that could theoretically break users that have very strange mount option strings. This was necessary to fix glaring issues in how mount options were being treated. The key changes are: - Mount options on bind-mounts that clear a mount flag are now always applied. Previously, if a user requested a bind-mount with only clearing options (such as rw,exec,dev) the options would be ignored and the original bind-mount options would be set. Unfortunately this also means that container configurations which specified only clearing mount options will now actually get what they asked for, which could break existing containers (though it seems unlikely that a user who requested a specific mount option would consider it "broken" to get the mount options they asked foruser who requested a specific mount option would consider it "broken" to get the mount options they asked for). This also allows us to silently add locked mount flags the user did not explicitly request to be cleared in rootless mode, allowing for easier use of bind-mounts for rootless containers. - Container configurations using bind-mounts with superblock mount flags (i.e. filesystem-specific mount flags, referred to as "data" in mount(2), as opposed to VFS generic mount flags like MS_NODEV) will now return an error. This is because superblock mount flags will also affect the host mount (as the superblock is shared when bind-mounting), which is obviously not acceptable. Previously, these flags were silently ignored so this change simply tells users that runc cannot fulfil their request rather than just ignoring it. Deprecated - runc option --criu is now ignored (with a warning), and the option will be removed entirely in a future release. Users who need a non-standard criu binary should rely on the standard way of looking up binaries in $PATH. - runc kill option -a is now deprecated. Previously, it had to be specified to kill a container (with SIGKILL) which does not have its own private PID namespace (so that runc would send SIGKILL to all processes). Now, this is done automatically. - github.com/opencontainers/runc/libcontainer/user is now deprecated, please use github.com/moby/sys/user instead. It will be removed in a future release. [@kolyshkin: set CC and CFLAGS, add xx-verify for runc-dmz, use EXTRA_BUILDTAGS (no need to specify default tags like seccomp)]. Co-authored-by: Kir Kolyshkin <kolyshkin@gmail.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Note: this usage comes from commit 56f77d5 (part of PR 23430). cgroups.InitCgroupPath is removed from runc (see [1]), and it is suggested that users use OwnCgroupPath instead, because using init's is problematic when in host PID namespace (see [2]) and is generally not the right thing to do (see [3]). [1]: opencontainers/runc@fd5debf3 [2]: opencontainers/runc@2b28b3c2 [3]: opencontainers/runc@54e20217 Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
3129247 to
3b38721
Compare
|
A failure in Looks like it's a known issue: #47553 |
rata
left a comment
There was a problem hiding this comment.
@kolyshkin thanks for moving this forward!
| try := 0 | ||
| retry: | ||
| conn, err := net.Dial("tcp", net.JoinHostPort(endpoint.String(), "8080")) | ||
| if err != nil && try < 10 { | ||
| try++ | ||
| time.Sleep(200 * time.Millisecond) | ||
| goto retry | ||
| } |
There was a problem hiding this comment.
I think these changes didn't help. I ended up doing this: rata@2b723e7
The bug linked there says these tests are flaky (not just the one currently skipped, IIRC) and I just added the skip like other tests on this file do. You can verify this, but my memory is that at least not all the retries in this file helped to make the tests green
There was a problem hiding this comment.
@kolyshkin sorry, with "these changes" I meant just the retry here in this file. The other changes are still needed, or at least I've seen them flaky with runc 1.2.0 final release in a quick test.
The only difference is that with runc 1.2.0-rcX the tests failed reliably. Now with the overlayfs it is faster and they are just flaky. But I think the rest of the changes to moby tests are needed
Let's use latest and greatest runc v1.2.0 (both the binary and the set of vendored libraries).