You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by sp...@apache.org on 2021/05/31 02:07:29 UTC
[apisix-go-plugin-runner] 22/22: fix: clean up sock file
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 <sp...@gmail.com>
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))
}