aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislusf <chris.lu@gmail.com>2015-08-21 14:09:33 -0700
committerchrislusf <chris.lu@gmail.com>2015-08-21 14:09:36 -0700
commit91db227b27d45389e982a945d947bffa6e21812f (patch)
tree1de0d4cd0edf90b54a6e288b4a9e3d4785d5e220
parent1c6729d4c12560111a0e503e004ffa01aa3add62 (diff)
downloadseaweedfs-91db227b27d45389e982a945d947bffa6e21812f.tar.xz
seaweedfs-91db227b27d45389e982a945d947bffa6e21812f.zip
avoid using empty fileId to delete
fix https://github.com/chrislusf/seaweedfs/issues/183
-rw-r--r--go/filer/embedded_filer/files_in_leveldb.go3
-rw-r--r--go/weed/weed_server/filer_server_handlers.go2
2 files changed, 4 insertions, 1 deletions
diff --git a/go/filer/embedded_filer/files_in_leveldb.go b/go/filer/embedded_filer/files_in_leveldb.go
index 6d141a395..b0b410a26 100644
--- a/go/filer/embedded_filer/files_in_leveldb.go
+++ b/go/filer/embedded_filer/files_in_leveldb.go
@@ -43,6 +43,9 @@ func (fl *FileListInLevelDb) CreateFile(dirId filer.DirectoryId, fileName string
}
func (fl *FileListInLevelDb) DeleteFile(dirId filer.DirectoryId, fileName string) (fid string, err error) {
if fid, err = fl.FindFile(dirId, fileName); err != nil {
+ if err == leveldb.ErrNotFound {
+ return "", nil
+ }
return
}
err = fl.db.Delete(genKey(dirId, fileName), nil)
diff --git a/go/weed/weed_server/filer_server_handlers.go b/go/weed/weed_server/filer_server_handlers.go
index 50a5a9c52..1695296d4 100644
--- a/go/weed/weed_server/filer_server_handlers.go
+++ b/go/weed/weed_server/filer_server_handlers.go
@@ -209,7 +209,7 @@ func (fs *FilerServer) DeleteHandler(w http.ResponseWriter, r *http.Request) {
err = fs.filer.DeleteDirectory(r.URL.Path, isRecursive)
} else {
fid, err = fs.filer.DeleteFile(r.URL.Path)
- if err == nil {
+ if err == nil && fid != "" {
err = operation.DeleteFile(fs.master, fid, fs.jwt(fid))
}
}