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))
 }

Reply via email to