Improve atomic delete
skip hidden directories in load task, and return soon if path not exist in atomicDelete carry of #3233 Closes #3233 Signed-off-by: Ace-Tang <aceapril@126.com> Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
cafda1c50f
commit
5b7a327c47
@ -179,6 +179,9 @@ func atomicDelete(path string) error {
|
|||||||
// create a hidden dir for an atomic removal
|
// create a hidden dir for an atomic removal
|
||||||
atomicPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path)))
|
atomicPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path)))
|
||||||
if err := os.Rename(path, atomicPath); err != nil {
|
if err := os.Rename(path, atomicPath); err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return os.RemoveAll(atomicPath)
|
return os.RemoveAll(atomicPath)
|
||||||
|
@ -330,6 +330,10 @@ func (r *Runtime) loadTasks(ctx context.Context, ns string) ([]*Task, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
id := path.Name()
|
id := path.Name()
|
||||||
|
// skip hidden directories
|
||||||
|
if len(id) > 0 && id[0] == '.' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
bundle := loadBundle(
|
bundle := loadBundle(
|
||||||
id,
|
id,
|
||||||
filepath.Join(r.state, ns, id),
|
filepath.Join(r.state, ns, id),
|
||||||
|
@ -134,6 +134,9 @@ func atomicDelete(path string) error {
|
|||||||
// create a hidden dir for an atomic removal
|
// create a hidden dir for an atomic removal
|
||||||
atomicPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path)))
|
atomicPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path)))
|
||||||
if err := os.Rename(path, atomicPath); err != nil {
|
if err := os.Rename(path, atomicPath); err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return os.RemoveAll(atomicPath)
|
return os.RemoveAll(atomicPath)
|
||||||
|
@ -214,6 +214,10 @@ func (m *TaskManager) loadTasks(ctx context.Context) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
id := sd.Name()
|
id := sd.Name()
|
||||||
|
// skip hidden directories
|
||||||
|
if len(id) > 0 && id[0] == '.' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
bundle, err := LoadBundle(ctx, m.state, id)
|
bundle, err := LoadBundle(ctx, m.state, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// fine to return error here, it is a programmer error if the context
|
// fine to return error here, it is a programmer error if the context
|
||||||
|
Loading…
Reference in New Issue
Block a user