Skip to content

Commit 41da164

Browse files
committed
Backend: Add fix for concurrent cleanups to convert_sidecar_json.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
1 parent 29ca2c1 commit 41da164

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

internal/photoprism/convert_sidecar_json.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,16 @@ func (w *Convert) ToJson(f *MediaFile, force bool) (jsonName string, err error)
6565
}
6666
}
6767

68-
// Write output to file.
68+
// Write output to file (make parent dir robustly in case a parallel test cleaned the cache).
6969
if err = os.WriteFile(jsonName, []byte(out.String()), fs.ModeFile); err != nil {
70-
return "", err
70+
// If the parent directory vanished due to concurrent cleanup, recreate and retry once.
71+
if !os.IsNotExist(err) {
72+
return "", err
73+
} else if err = fs.MkdirAll(filepath.Dir(jsonName)); err != nil {
74+
return "", err
75+
} else if err = os.WriteFile(jsonName, []byte(out.String()), fs.ModeFile); err != nil {
76+
return "", err
77+
}
7178
}
7279

7380
// Check if file exists.

0 commit comments

Comments
 (0)