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

TestUpdateDevices fails on i386 #4594

Open
kolyshkin opened this issue Jan 16, 2025 · 0 comments · May be fixed by #4595
Open

TestUpdateDevices fails on i386 #4594

kolyshkin opened this issue Jan 16, 2025 · 0 comments · May be fixed by #4595

Comments

@kolyshkin
Copy link
Contributor

Description

We have a CI job to compile runc and run its unit tests to make sure the code is 32-bit clean.

Recently (about a month ago) TestUpdateDevices and/or TestUpdateDevicesSystemd start to fail randomly.

The failure is happening in one of two ways:

  1. invalid character 'ÿ' looking for beginning of object key string
Log ``` === RUN TestUpdateDevicesSystemd ....... time="2024-12-23T02:28:15Z" level=info msg="found more than one filter (2) attached to a cgroup -- removing extra filters!" time="2024-12-23T02:28:15Z" level=info msg="removing old filter 0 from cgroup" id=1028 name= run_count=0 runtime=0s tag=531db05b114e9af3 type=CGroupDevice time="2024-12-23T02:28:15Z" level=info msg="removing old filter 1 from cgroup" id=1029 name= run_count=0 runtime=0s tag=a04f5eef06a7f555 type=CGroupDevice time="2024-12-23T02:28:15Z" level=info msg="found more than one filter (2) attached to a cgroup -- removing extra filters!" time="2024-12-23T02:28:15Z" level=info msg="removing old filter 0 from cgroup" id=1030 name= run_count=0 runtime=0s tag=fb6cb1c301453333 type=CGroupDevice time="2024-12-23T02:28:15Z" level=info msg="removing old filter 1 from cgroup" id=1031 name= run_count=0 runtime=0s tag=3b0b81b071f088cd type=CGroupDevice update_test.go:67: unexpected error: unable to start container process: invalid character 'ÿ' looking for beginning of object key string --- FAIL: TestUpdateDevicesSystemd (3.03s) ```
  1. panic in strings.Contains
Log ``` .... time="2025-01-16T04:13:05Z" level=info msg="removing old filter 0 from cgroup" id=824 name= run_count=0 runtime=0s tag=531db05b114e9af3 type=CGroupDevice time="2025-01-16T04:13:05Z" level=info msg="removing old filter 1 from cgroup" id=825 name= run_count=0 runtime=0s tag=a04f5eef06a7f555 type=CGroupDevice time="2025-01-16T04:13:05Z" level=info msg="found more than one filter (2) attached to a cgroup -- removing extra filters!" time="2025-01-16T04:13:05Z" level=info msg="removing old filter 0 from cgroup" id=826 name= run_count=0 runtime=0s tag=fb6cb1c301453333 type=CGroupDevice time="2025-01-16T04:13:05Z" level=info msg="removing old filter 1 from cgroup" id=827 name= run_count=0 runtime=0s tag=3b0b81b071f088cd type=CGroupDevice unexpected fault address 0xffffffff fatal error: fault [signal SIGSEGV: segmentation violation code=0x1 addr=0xffffffff pc=0x80cdf14]

goroutine 1310 gp=0x8c077a8 m=90 mp=0x908e008 [running]:
runtime.throw({0x85897db, 0x5})
/opt/hostedtoolcache/go/1.23.4/x64/src/runtime/panic.go:1067 +0x35 fp=0x8cd3b80 sp=0x8cd3b6c pc=0x80c2d55
runtime.sigpanic()
/opt/hostedtoolcache/go/1.23.4/x64/src/runtime/signal_unix.go:931 +0x2af fp=0x8cd3bac sp=0x8cd3b80 pc=0x80c499f
internal/stringslite.Index({0x8c25740, 0x29}, {0xffffffff, 0x24})
/opt/hostedtoolcache/go/1.23.4/x64/src/internal/stringslite/strings.go:78 +0x54 fp=0x8cd3bf4 sp=0x8cd3bac pc=0x80cdf14
strings.Index(...)
/opt/hostedtoolcache/go/1.23.4/x64/src/strings/strings.go:1221
strings.Contains(...)
/opt/hostedtoolcache/go/1.23.4/x64/src/strings/strings.go:62
github.com/opencontainers/runc/libcontainer/integration.testUpdateDevices(0x8cd8808, 0x1)
/home/runner/work/runc/runc/libcontainer/integration/update_test.go:71 +0x8cf fp=0x8cd3f68 sp=0x8cd3bf4 pc=0x84bae5f
github.com/opencontainers/runc/libcontainer/integration.TestUpdateDevicesSystemd(0x8cd8808)
/home/runner/work/runc/runc/libcontainer/integration/update_test.go:97 +0x83 fp=0x8cd3f84 sp=0x8cd3f68 pc=0x84bb203
testing.tRunner(0x8cd8808, 0x85b26c0)
/opt/hostedtoolcache/go/1.23.4/x64/src/testing/testing.go:1690 +0x119 fp=0x8cd3fe4 sp=0x8cd3f84 pc=0x818fb29
testing.(*T).Run.gowrap1()
/opt/hostedtoolcache/go/1.23.4/x64/src/testing/testing.go:1743 +0x2e fp=0x8cd3ff0 sp=0x8cd3fe4 pc=0x8190b4e
runtime.goexit({})
/opt/hostedtoolcache/go/1.23.4/x64/src/runtime/asm_386.s:1393 +0x1 fp=0x8cd3ff4 sp=0x8cd3ff0 pc=0x80c9961
created by testing.(*T).Run in goroutine 1
/opt/hostedtoolcache/go/1.23.4/x64/src/testing/testing.go:1743 +0x3d1
...

FAIL github.com/opencontainers/runc/libcontainer/integration 18.695s

</details>

Both cases look like some kind of memory corruption.

### Steps to reproduce the issue

* Create a PR
* See ci / cross-i386 fails

### Describe the results you received and expected

no failures

### What version of runc are you using?

git HEAD

### Host OS information

_No response_

### Host kernel information

_No response_
@kolyshkin kolyshkin linked a pull request Jan 16, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant