The recent change to support importing ktesting into an E2E suite
without progress reporting was flawed:
- If a Go unit test had a deadline (the default when invoked
by `go test`!), the early return skipped initializing progress
reporting.
- When it didn't, for example when invoking a test binary directly
under stress, a test created goroutines which were kept running,
which broke leak checking in e.g. an integration tests TestMain.
The revised approach uses reference counting: as long as some unit test is
running, the progress reporting with the required goroutines are active.
When the last one ends, they get cleaned up, which keeps the goleak
checker happy.
The TestCause tests were already unreliable in the CI. The others failed under
stress.
As synctest we have to be more careful how to construct and clean up the parent
context for TestCause (must happen inside bubble), but once that's handled we
can reliably measure the (fake) time and compare exactly against expected
results.
The NPB (NAS Parallel Benchmarks) test images were failing to build
for arm64 architecture due to missing shebangs in NPB shell scripts.
The sys/print_header and sys/print_instructions scripts in NPB lack
default /bin/sh), they fail with "Error 127" (command not found) during
QEMU-emulated cross-builds.
Fix by adding shebangs to these scripts during the Docker build.
Changes:
- npb-ep: Add shebang fix, bump version 1.5 → 1.6.0
- npb-is: Add shebang fix, bump version 1.4 → 1.5.0
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
TopologyManagerOptions went to GA but were not LockedToDefaults
unlike other GA features. Fix that.
Signed-off-by: Francesco Romani <fromani@redhat.com>
MemoryManager went GA and LockedToDefault in 1.32,
but it seems we forgot to mark the FG for removal.
Enough time (1.36 cycle beginning at time of writing)
has passed, we can remove it.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Fix by adding chmod -R a+rX after tar extraction to ensure all files
are readable and executables/directories are accessible.
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
The kube-cross image has GOPATH=/usr/local/go and GOROOT=/usr/local/go
(same directory). When `go install .` runs, the binary is placed in
/usr/local/go/bin/, but the Makefile was searching for it in /go/bin/
which is empty.
Fix by using `go build -o` to place the binary directly at the target
location instead of relying on go install + find.
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
The jessie-dnsutils image build has been failing since Debian Jessie reached
end-of-life (EOL) and its repositories were moved to archive.debian.org:
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/Release
404 Not Found [IP: 151.101.86.132 80]
E: Some index files failed to download.
This adds a new glibc-dns-testing image to replace jessie-dnsutils. The new
name better reflects the image's purpose: testing glibc DNS resolution behavior
(vs. musl in Alpine-based agnhost).
The name glibc-dns-testing was recommended by maintainers to reflect that
the image's purpose is testing glibc-based DNS resolution, which behaves
differently from musl libc (used by Alpine/agnhost). Key differences include:
- glibc queries nameservers sequentially; musl queries in parallel
- glibc and musl handle ndots and search domains differently
- The hostname command behaves differently between glibc and musl
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
In Debian bookworm, 'netcat' is a virtual package with no installation
candidate. Replace it with 'netcat-openbsd' which provides the actual
netcat implementation.
Build failure:
```
> [2/7] RUN clean-install wget bash netcat:
0.382 Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [291 kB]
3.174 Reading state information...
3.180 Package netcat is a virtual package provided by:
3.180 netcat-openbsd 1.219-1
3.180 netcat-traditional 1.10-47
3.180
3.182 E: Package 'netcat' has no installation candidate
------
```
Signed-off-by: Davanum Srinivas <davanum@gmail.com>