From f6110f8036bc176188abb583bfa51296c4d3897d Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Thu, 28 Oct 2021 18:59:40 +0300 Subject: [PATCH] fix: remove listening socket to fix Talos in a container restart Fixes #4462 As `/system` volumes survives restarts in a container mode, we need to make sure listening file socket is removed before creating a listener. Signed-off-by: Andrey Smirnov --- internal/app/machined/pkg/system/services/apid.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/app/machined/pkg/system/services/apid.go b/internal/app/machined/pkg/system/services/apid.go index 31bd2aa06..dcad69db6 100644 --- a/internal/app/machined/pkg/system/services/apid.go +++ b/internal/app/machined/pkg/system/services/apid.go @@ -72,6 +72,11 @@ func (o *APID) PreFunc(ctx context.Context, r runtime.Runtime) error { return err } + // clean up the socket if it already exists (important for Talos in a container) + if err := os.RemoveAll(constants.APIRuntimeSocketPath); err != nil { + return err + } + listener, err := net.Listen("unix", constants.APIRuntimeSocketPath) if err != nil { return err