Bug #22406
openTests build arvados-server, run it in debian:11 container, assume too much glibc compatibility
Description
The cmd/arvados-package tests build a Go binary and then run it inside a Debian 11 container. This can fail if there's not enough glibc compatibility between the host system and Debian 11. For example, on Debian 12:
======= test cmd/arvados-package Unable to find image 'debian:11' locally 11: Pulling from library/debian Digest: sha256:e91d1b0684e0f26a29c2353c52d4814f4d153e10b1faddf9fbde473ed71e2fcf Status: Downloaded newer image for debian:11 /arvados-package: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /arvados-package) /arvados-package: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /arvados-package) time="2024-12-17T13:54:59.602713952-05:00" level=error msg=failed error="[docker run --name arvados-package-build-debian-11 --tmpfs /tmp:exec,mode=01777 -v /tmp/go-build485887196/b001/exe/arvados-package:/arvados-package:ro -v /home/brett/Curii/arvados:/ arvados:ro debian:11 /arvados-package _install -eatmydata -type package -source /arvados -package-version 1.2.3~rc4]: exit status 1" exit status 1 ---------------------------------------------------------------------- FAIL: build_test.go:27: BuildSuite.TestBuildAndInstall build_test.go:48: c.Check(err, check.IsNil) ... value *exec.ExitError = &exec.ExitError{ProcessState:(*os.ProcessState)(0xc0000127f8), Stderr:[]uint8(nil)} ("exit status 1") build_test.go:51: c.Assert(err, check.IsNil) ... value *fs.PathError = &fs.PathError{Op:"stat",Path:"/tmp/check-2874231264/0/arvados-server-easy_1.2.3~rc4_amd64.deb", Err: 0x2} ("stat /tmp/check-2874231264/0/arvados-server-easy_1.2.3~rc4_amd64.deb: no such file or directory") OOPS: 0 passed, 1 FAILED --- FAIL: Test (6.66s) FAIL coverage: 0.0% of statements FAIL git.arvados.org/arvados.git/cmd/arvados-package 6.669s FAIL ======= cmd/arvados-package tests -- FAILED
Updated by Brett Smith 4 days ago
- Subject changed from cmd/arvados-package tests assume too much glibc compatibility to Tests build arvados-server, run it in debian:11 container, assume too much glibc compatibility
source:lib/controller/localdb/login_ldap_docker_test.sh follows the same pattern.
Updated by Peter Amstutz 4 days ago
Just to make sure I'm following, the binary is built in a Debian 12 environment and then brought backwards to a Debian 11 environment?
Updated by Brett Smith 4 days ago
Peter Amstutz wrote in #note-2:
Just to make sure I'm following, the binary is built in a Debian 12 environment and then brought backwards to a Debian 11 environment?
Correct. The build environment is whatever distro you happen to be running tests on, and then the Docker container it tests inside is hardcoded to be Debian 11 no matter what.