diff --git a/cmd/olliesrv/internal/toolclient/spawn.go b/cmd/olliesrv/internal/toolclient/spawn.go index d66c716..050286b 100644 --- a/cmd/olliesrv/internal/toolclient/spawn.go +++ b/cmd/olliesrv/internal/toolclient/spawn.go @@ -91,6 +91,7 @@ func Spawn(ctx context.Context, cwd string, opts ...Option) (*Process, error) { if err := cmd.Start(); err != nil { cancel() + _ = os.Remove(socketPath) return nil, fmt.Errorf("start toolsrv: %w", err) } @@ -241,6 +242,7 @@ exec "$CACHE_DIR/bin/toolsrv" %s cancel() _ = cmd.Process.Kill() _ = cmd.Wait() + _ = os.Remove(localSock) return nil, fmt.Errorf("send tarball: %w", err) } // Send bootstrap script @@ -248,6 +250,7 @@ exec "$CACHE_DIR/bin/toolsrv" %s cancel() _ = cmd.Process.Kill() _ = cmd.Wait() + _ = os.Remove(localSock) return nil, fmt.Errorf("send bootstrap: %w", err) } stdin.Close() @@ -278,6 +281,7 @@ exec "$CACHE_DIR/bin/toolsrv" %s if !ready { _ = cmd.Wait() <-stderrDone + _ = os.Remove(localSock) return nil, fmt.Errorf("remote toolsrv exited before startup") } case <-time.After(30 * time.Second): @@ -285,6 +289,7 @@ exec "$CACHE_DIR/bin/toolsrv" %s _ = cmd.Process.Kill() _ = cmd.Wait() <-stderrDone + _ = os.Remove(localSock) return nil, fmt.Errorf("remote toolsrv startup timeout") } @@ -293,6 +298,7 @@ exec "$CACHE_DIR/bin/toolsrv" %s cancel() _ = cmd.Process.Kill() _ = cmd.Wait() + _ = os.Remove(localSock) return nil, fmt.Errorf("wait for forwarded socket: %w", err) }