Skip to content

CI: add oraclelinux-8 for running tests with cgroup v1#49819

Merged
AkihiroSuda merged 3 commits intomoby:masterfrom
AkihiroSuda:cgroup1
Aug 29, 2025
Merged

CI: add oraclelinux-8 for running tests with cgroup v1#49819
AkihiroSuda merged 3 commits intomoby:masterfrom
AkihiroSuda:cgroup1

Conversation

@AkihiroSuda
Copy link
Copy Markdown
Member

@AkihiroSuda AkihiroSuda commented Apr 16, 2025

- What I did
Fix #49576

- How I did it

Used Lima for running a VM of template://almalinux-8 template://oraclelinux-8
(some tests do not pass with template://almalinux-8: #49819 (comment))

https://lima-vm.io/docs/examples/gha/

- How to verify it

Observe the CI result

- Human readable description for the release notes

- A picture of a cute animal (not mandatory but encouraged)

Comment thread .github/workflows/.vm.yml Outdated
@AkihiroSuda AkihiroSuda force-pushed the cgroup1 branch 3 times, most recently from 3faee07 to 6910276 Compare April 16, 2025 12:50
@AkihiroSuda

This comment was marked as resolved.

@AkihiroSuda AkihiroSuda force-pushed the cgroup1 branch 3 times, most recently from a12bd51 to 140c4fe Compare April 17, 2025 00:25
@AkihiroSuda AkihiroSuda marked this pull request as draft April 17, 2025 00:25
@AkihiroSuda AkihiroSuda force-pushed the cgroup1 branch 7 times, most recently from 885f404 to 8f9f099 Compare April 18, 2025 15:07
@AkihiroSuda
Copy link
Copy Markdown
Member Author

AkihiroSuda commented Apr 18, 2025

Failures on almalinux-8

Rootful

https://github.com/moby/moby/actions/runs/14537211827/job/40787925346?pr=49819

== Failed
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromHost/userland-proxy=true/IPv6=false (1.09s)
    port_mapping_linux_test.go:412: assertion failed: error is not nil: Get "http://127.0.0.1:1234": read tcp 127.0.0.1:55268->127.0.0.1:1234: read: connection reset by peer
    --- FAIL: TestAccessPublishedPortFromHost/userland-proxy=true/IPv6=false (1.09s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromHost/userland-proxy=false/IPv6=false (1.09s)
    port_mapping_linux_test.go:412: assertion failed: error is not nil: Get "http://127.0.0.1:1235": dial tcp 127.0.0.1:1235: connect: connection refused
    --- FAIL: TestAccessPublishedPortFromHost/userland-proxy=false/IPv6=false (1.09s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromHost/userland-proxy=true/IPv6=true (1.13s)
    port_mapping_linux_test.go:412: assertion failed: error is not nil: Get "http://[::1]:1236": read tcp [::1]:50406->[::1]:1236: read: connection reset by peer
    --- FAIL: TestAccessPublishedPortFromHost/userland-proxy=true/IPv6=true (1.13s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromHost (4.51s)
=== FAIL: amd64.integration.networking TestRestartUserlandProxyUnder2MSL (1.10s)
    port_mapping_linux_test.go:621: assertion failed: error is not nil: Get "http://127.0.0.1:1780": read tcp 127.0.0.1:47610->127.0.0.1:1780: read: connection reset by peer
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromAnotherNetwork/IPv4/Gateway (7.10s)
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:903: assertion failed: string "" does not contain "foobar"
    --- FAIL: TestAccessPublishedPortFromAnotherNetwork/IPv4/Gateway (7.10s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromAnotherNetwork/IPv6/Gateway (7.07s)
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:903: assertion failed: string "" does not contain "foobar"
    --- FAIL: TestAccessPublishedPortFromAnotherNetwork/IPv6/Gateway (7.07s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromAnotherNetwork/IPv4/Host (7.05s)
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:903: assertion failed: string "" does not contain "foobar"
    --- FAIL: TestAccessPublishedPortFromAnotherNetwork/IPv4/Host (7.05s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromAnotherNetwork/IPv6/Host (7.05s)
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:899: Retrying...
    port_mapping_linux_test.go:903: assertion failed: string "" does not contain "foobar"
    --- FAIL: TestAccessPublishedPortFromAnotherNetwork/IPv6/Host (7.05s)
=== FAIL: amd64.integration.networking TestAccessPublishedPortFromAnotherNetwork (29.23s)

Rootless

https://github.com/moby/moby/actions/runs/14537211827/job/40787925685?pr=49819

=== Failed
=== FAIL: amd64.integration.container TestNetworkLocalhostTCPNat (0.38s)
    nat_test.go:78: assertion failed: hi yall (msg string) !=  (string)

@AkihiroSuda AkihiroSuda force-pushed the cgroup1 branch 4 times, most recently from 5653897 to 03da18f Compare April 18, 2025 21:34
@AkihiroSuda AkihiroSuda changed the title CI: add almalinux-8 for running tests with cgroup v1 CI: add oraclelinux-8 for running tests with cgroup v1 Apr 18, 2025
# On almalinux-8, port forwarding tests are failing:
# https://github.com/moby/moby/pull/49819#issuecomment-2815676000
- template://oraclelinux-8 # Oracle's kernel 5.15
# - template://almalinux-8 # kernel 4.18
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Let me just use oraclelinux-8 (kernel 5.15) and call it a day.

The failures on almalinux-8 (kernel 4.18) have to be analyzed though.

@AkihiroSuda AkihiroSuda marked this pull request as ready for review April 18, 2025 21:36
@AkihiroSuda AkihiroSuda requested a review from tianon as a code owner April 18, 2025 21:36
@kolyshkin
Copy link
Copy Markdown
Contributor

Are we against using cirrus-ci here?

@AkihiroSuda
Copy link
Copy Markdown
Member Author

Are we against using cirrus-ci here?

No strong objection, but it is somewhat cumbersome to maintain two different CIs, and the GCP cost might not be negligible

Comment thread .github/workflows/.vm.yml Outdated
@thaJeztah
Copy link
Copy Markdown
Member

I looked at this before, and SGTM, but could use some eyes from @crazy-max @vvoland if they have time

@vvoland
Copy link
Copy Markdown
Contributor

vvoland commented May 16, 2025

The only concern I have is that it takes around 30 minutes while for these tests to execute:
image

Wondering if we should only limit this workflow to only run cgroup v1 specific tests?

@AkihiroSuda
Copy link
Copy Markdown
Member Author

Wondering if we should only limit this workflow to only run cgroup v1 specific tests?

Doesn't seem easy to identify such tests

@vvoland
Copy link
Copy Markdown
Contributor

vvoland commented May 19, 2025

Isn't it mostly for tests like

skip.If(t, testEnv.DaemonInfo.CgroupVersion == "2", "FIXME: flaky on cgroup v2 (https://github.com/moby/moby/issues/41929)")
(which are skipped on non v1)?

@AkihiroSuda
Copy link
Copy Markdown
Member Author

There could be other tests that implicitly depend on cgroups

@AkihiroSuda
Copy link
Copy Markdown
Member Author

Rebased

@AkihiroSuda

This comment was marked as resolved.

@AkihiroSuda AkihiroSuda force-pushed the cgroup1 branch 2 times, most recently from c5365db to 5cb3304 Compare August 28, 2025 10:21
@AkihiroSuda AkihiroSuda added this to the 29.0.0 milestone Aug 28, 2025
@AkihiroSuda
Copy link
Copy Markdown
Member Author

CI is now green again

@thaJeztah @vvoland PTAL 🙏

Copy link
Copy Markdown
Member

@thaJeztah thaJeztah left a comment

Choose a reason for hiding this comment

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

I'm OK with adding this; or at least, it makes sure we have some coverage for v1; we'd discover soon enough if adding the extra checks becomes problematic to run on every PR.

LGTM

but @vvoland @robmry @crazy-max for a second review ❤️

Comment thread .github/workflows/.vm.yml
Comment thread .github/workflows/.vm.yml Outdated
Used for rootless on kernel < 5.11

Signed-off-by: Akihiro Suda <[email protected]>
Lima is used for running a VM of `template://oraclelinux-8`.

My initial attempt was to use almalinux-8, but some port forwarding tests
do not seem to work on almalinux-8.

https://lima-vm.io/docs/examples/gha/

Fix issue 49576

Signed-off-by: Akihiro Suda <[email protected]>
@AkihiroSuda AkihiroSuda merged commit b98046f into moby:master Aug 29, 2025
275 of 277 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update actions to newer Ubuntu version, add self-hosted runners for cgroups v1

4 participants