This is an automated email from the ASF dual-hosted git repository. spacewander pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/apisix-go-plugin-runner.git
commit cfb8bbfa32a62d80ec28ea8576d19c863932cc61 Author: spacewander <[email protected]> AuthorDate: Mon May 31 10:06:20 2021 +0800 fix: clean up sock file --- internal/server/server.go | 7 +++++++ internal/server/server_test.go | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/internal/server/server.go b/internal/server/server.go index 7299252..fe2dcea 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -175,9 +175,16 @@ func Run() { } log.Infof("listening to %s", sockAddr) + // clean up sock file created by others if err := os.RemoveAll(sockAddr); err != nil { log.Fatalf("remove file %s: %s", sockAddr, err) } + // clean up sock file created by me + defer func() { + if err := os.RemoveAll(sockAddr); err != nil { + log.Errorf("remove file %s: %s", sockAddr, err) + } + }() l, err := net.Listen("unix", sockAddr) if err != nil { diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 4a5b3dd..497e073 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -19,6 +19,7 @@ import ( "encoding/binary" "net" "os" + "syscall" "testing" "time" @@ -34,7 +35,8 @@ func TestGetSockAddr(t *testing.T) { } func TestRun(t *testing.T) { - addr := "unix:/tmp/x.sock" + path := "/tmp/x.sock" + addr := "unix:" + path os.Setenv(SockAddrEnv, addr) os.Setenv(ConfCacheTTLEnv, "60") @@ -65,4 +67,10 @@ func TestRun(t *testing.T) { defer conn.Close() conn.Write(c.header) } + + syscall.Kill(syscall.Getpid(), syscall.SIGINT) + time.Sleep(10 * time.Millisecond) + + _, err := os.Stat(path) + assert.True(t, os.IsNotExist(err)) }
