fix(fs): fix issues related to closing fd
This commit is contained in:
parent
70dda37c54
commit
5e8567d470
8 changed files with 120 additions and 105 deletions
|
@ -110,9 +110,10 @@ func initDeps(cfg gocfg.ICfg) *depidx.Deps {
|
|||
mkRoot(rootPath)
|
||||
opensLimit := cfg.GrabInt("Fs.OpensLimit")
|
||||
openTTL := cfg.GrabInt("Fs.OpenTTL")
|
||||
readerTTL := cfg.GrabInt("Server.WriteTimeout") / 1000 // millisecond -> second
|
||||
|
||||
ider := simpleidgen.New()
|
||||
filesystem := local.NewLocalFS(rootPath, 0660, opensLimit, openTTL)
|
||||
filesystem := local.NewLocalFS(rootPath, 0660, opensLimit, openTTL, readerTTL, ider)
|
||||
jwtEncDec := jwt.NewJWTEncDec(secret)
|
||||
kv := boltdbpvd.New(rootPath, 1024)
|
||||
users, err := userstore.NewKVUserStore(kv)
|
||||
|
@ -313,6 +314,7 @@ func (s *Server) Start() error {
|
|||
func (s *Server) Shutdown() error {
|
||||
// TODO: add timeout
|
||||
s.deps.Workers().Stop()
|
||||
s.deps.FS().Close()
|
||||
s.deps.Log().Sync()
|
||||
return s.server.Shutdown(context.Background())
|
||||
}
|
||||
|
|
|
@ -575,7 +575,7 @@ func TestFileHandlers(t *testing.T) {
|
|||
// cl := client.NewFilesClient(addr)
|
||||
|
||||
files := map[string]string{
|
||||
"qs/files/uploadings/path1/f1": "12345678",
|
||||
"qs/files/uploadings1/path1/f1": "12345678",
|
||||
}
|
||||
|
||||
for filePath, content := range files {
|
||||
|
@ -594,18 +594,13 @@ func TestFileHandlers(t *testing.T) {
|
|||
offset := int64(0)
|
||||
for _, chunk := range chunks {
|
||||
base64Content := base64.StdEncoding.EncodeToString(chunk)
|
||||
res, _, errs = cl.UploadChunk(filePath, base64Content, offset)
|
||||
res, bodyStr, errs := cl.UploadChunk(filePath, base64Content, offset)
|
||||
offset += int64(len(chunk))
|
||||
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if res.StatusCode != 200 {
|
||||
t.Fatal(res.StatusCode)
|
||||
}
|
||||
|
||||
err = fs.Close()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
t.Fatal(fmt.Sprintln(res.StatusCode, bodyStr))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -663,11 +658,6 @@ func TestFileHandlers(t *testing.T) {
|
|||
} else if res.StatusCode != 200 {
|
||||
t.Fatal(res.StatusCode)
|
||||
}
|
||||
|
||||
err = fs.Close()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
err = fs.Sync()
|
||||
|
|
|
@ -89,7 +89,7 @@ func TestSpaceLimit(t *testing.T) {
|
|||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
|
||||
t.Run("test space limitiong: Upload", func(t *testing.T) {
|
||||
t.Run("test space limiting: Upload", func(t *testing.T) {
|
||||
usersCl := client.NewSingleUserClient(addr)
|
||||
resp, _, errs := usersCl.Login(getUserName(0), userPwd)
|
||||
if len(errs) > 0 {
|
||||
|
@ -105,9 +105,9 @@ func TestSpaceLimit(t *testing.T) {
|
|||
}
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
ok := assertUploadOK(t, fmt.Sprintf("%s/spacelimit/f_%d", getUserName(0), 0), fileContent, addr, token)
|
||||
ok := assertUploadOK(t, fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), i), fileContent, addr, token)
|
||||
if !ok {
|
||||
t.Fatalf("space limit failed at %d", 0)
|
||||
t.Fatalf("space limit failed at %d", i)
|
||||
}
|
||||
|
||||
resp, selfResp, errs := usersCl.Self(token)
|
||||
|
@ -121,7 +121,7 @@ func TestSpaceLimit(t *testing.T) {
|
|||
}
|
||||
|
||||
cl := client.NewFilesClient(addr, token)
|
||||
filePath := fmt.Sprintf("%s/spacelimit/f_%d", getUserName(0), 11)
|
||||
filePath := fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), 11)
|
||||
res, _, errs := cl.Create(filePath, 1)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
|
|
|
@ -58,12 +58,12 @@ func waitForReady(addr string) bool {
|
|||
}
|
||||
|
||||
func compareFileContent(fs fspkg.ISimpleFS, uid, filePath string, expectedContent string) (bool, error) {
|
||||
reader, err := fs.GetFileReader(filePath)
|
||||
reader, id, err := fs.GetFileReader(filePath)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
defer func() {
|
||||
err = fs.CloseReader(filePath)
|
||||
err = fs.CloseReader(fmt.Sprint(id))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue