lib/storage: fix a bug, which prevents from reading pre-v1.90.0 parts

The bug has been introduced in c0b852d50d
This commit is contained in:
Aliaksandr Valialkin 2023-04-14 22:33:05 -07:00
parent cf4701db65
commit f26e480a77
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1

View file

@ -135,19 +135,20 @@ func (ph *partHeader) MustReadMetadata(partPath string) {
ph.Reset() ph.Reset()
metadataPath := filepath.Join(partPath, metadataFilename) metadataPath := filepath.Join(partPath, metadataFilename)
metadata, err := os.ReadFile(metadataPath) if !fs.IsPathExist(metadataPath) {
if err != nil { // This is a part created before v1.90.0.
if os.IsNotExist(err) { // Fall back to reading the metadata from the partPath itsel
// This is a part created before v1.90.0. if err := ph.ParseFromPath(partPath); err != nil {
// Fall back to reading the metadata from the partPath itsel logger.Panicf("FATAL: cannot parse metadata from %q: %s", partPath, err)
if err := ph.ParseFromPath(partPath); err != nil { }
logger.Panicf("FATAL: cannot parse metadata from %q: %s", partPath, err) } else {
} metadata, err := os.ReadFile(metadataPath)
if err != nil {
logger.Panicf("FATAL: cannot read %q: %s", metadataPath, err)
}
if err := json.Unmarshal(metadata, ph); err != nil {
logger.Panicf("FATAL: cannot parse %q: %s", metadataPath, err)
} }
logger.Panicf("FATAL: cannot read %q: %s", metadataPath, err)
}
if err := json.Unmarshal(metadata, ph); err != nil {
logger.Panicf("FATAL: cannot parse %q: %s", metadataPath, err)
} }
// Perform various checks // Perform various checks