Oracle ODBC CI Fail#5343
Merged
Merged
Conversation
- Disable the container HEALTHCHECK via --health-cmd=none so podman does not invoke host systemd-run; under nix-shell --pure the host binary loads Nix's libdl.so.2 against host glibc and fails on a missing GLIBC_ABI_DT_X86_64_PLT symbol. - Replace ls+glob lookups with find. With shopt -s nullglob in the user's shell, an unmatched ls glob silently lists CWD, which injected a bogus value into odbcinst.ini Driver= and produced a self-referential instantclient_23_26 -> . symlink that suppressed re-download. - Trigger Instant Client download on missing libsqora.so*, not just on a missing directory, so a stale or broken state recovers automatically on the next nix-shell entry. - Update the ARM64 download URL to the versioned scheme; Oracle removed the unversioned instantclient-basic-linux-arm64.zip alias. Bump Instant Client to 23.26.1 to match the apt-style download used by the x86_64 CI job, and fill in the ARM64 SHA256s.
Closed
…5342 The previous --health-cmd=none flag did not actually prevent podman from calling host systemd-run during container start; podman uses systemd-run for cgroup unit registration regardless of the healthcheck setting when the systemd cgroup manager is active. - Write a containers.conf with cgroup_manager = cgroupfs and events_logger = file so podman bypasses systemd entirely. This fixes both: * GitHub Actions runners, where host systemd-run loaded the Nix libdl.so.2 against host glibc and died on a missing GLIBC_ABI_DT_X86_64_PLT symbol. * Headless VMs without a logind session, where systemctl --user fails with Interactive authentication required. - Run the container with --network=host instead of -p 1521:1521. Rootless pasta fails on some kernels with Failed to get netlink socket; host networking avoids the user-mode networking helper altogether and the test only needs 127.0.0.1:1521. - Fill in the x86_64 SHA256 placeholders with values for 23.26.1.0.0 so future runs verify integrity instead of warning.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Disable the container HEALTHCHECK via --health-cmd=none so podman does not invoke host systemd-run; under nix-shell --pure the host binary loads Nix's libdl.so.2 against host glibc and fails on a missing GLIBC_ABI_DT_X86_64_PLT symbol.
Replace ls+glob lookups with find. With shopt -s nullglob in the user's shell, an unmatched ls glob silently lists CWD, which injected a bogus value into odbcinst.ini Driver= and produced a self-referential instantclient_23_26 -> . symlink that suppressed re-download.
Trigger Instant Client download on missing libsqora.so*, not just on a missing directory, so a stale or broken state recovers automatically on the next nix-shell entry.
Update the ARM64 download URL to the versioned scheme; Oracle removed the unversioned instantclient-basic-linux-arm64.zip alias. Bump Instant Client to 23.26.1 to match the apt-style download used by the x86_64 CI job, and fill in the ARM64 SHA256s.