From 44dd800ba2d3f16626f4cbfd062a85bf26d83552 Mon Sep 17 00:00:00 2001 From: localai-org-maint-bot <306269227+localai-org-maint-bot@users.noreply.github.com> Date: Sun, 4 Oct 2026 03:06:19 +0000 Subject: [PATCH] test(cli): transfer socket descriptor ownership Duplicate the socket descriptor before handing it to the activation helper. Close the original file to prevent its finalizer from closing a reused coverage descriptor after the helper closes its own file wrapper. Assisted-by: Codex:gpt-6 --- core/cli/run_socket_activation_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/cli/run_socket_activation_test.go b/core/cli/run_socket_activation_test.go index f3b6b59e0368..ecfe7d719858 100644 --- a/core/cli/run_socket_activation_test.go +++ b/core/cli/run_socket_activation_test.go @@ -7,6 +7,8 @@ import ( "os" "strconv" + "golang.org/x/sys/unix" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) @@ -53,7 +55,13 @@ var _ = Describe("systemdActivatedListeners", func() { Expect(err).NotTo(HaveOccurred()) Expect(original.Close()).To(Succeed()) - listeners, err := listenersFromSystemdFDs(int(file.Fd()), 1) + // The activation helper takes ownership of a raw descriptor. Give it a + // duplicate so file's finalizer cannot close a later user of that descriptor. + fd, err := unix.Dup(int(file.Fd())) + Expect(err).NotTo(HaveOccurred()) + Expect(file.Close()).To(Succeed()) + + listeners, err := listenersFromSystemdFDs(fd, 1) Expect(err).NotTo(HaveOccurred()) Expect(listeners).To(HaveLen(1)) DeferCleanup(listeners[0].Close)