Merge pull request #4092 from filecoin-project/fix/finalize-uns-panic

sectorstorage: Fix potential panic in FinalizeSector
This commit is contained in:
Łukasz Magiera 2020-09-30 09:18:01 +02:00 committed by GitHub
commit 4e8ccb2158
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -546,10 +546,7 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector abi.SectorID, keepU
defer done() defer done()
pf, err := openPartialFile(maxPieceSize, paths.Unsealed) pf, err := openPartialFile(maxPieceSize, paths.Unsealed)
if xerrors.Is(err, os.ErrNotExist) { if err == nil {
return xerrors.Errorf("opening partial file: %w", err)
}
var at uint64 var at uint64
for sr.HasNext() { for sr.HasNext() {
r, err := sr.NextRun() r, err := sr.NextRun()
@ -574,6 +571,12 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector abi.SectorID, keepU
if err := pf.Close(); err != nil { if err := pf.Close(); err != nil {
return err return err
} }
} else {
if !xerrors.Is(err, os.ErrNotExist) {
return xerrors.Errorf("opening partial file: %w", err)
}
}
} }
paths, done, err := sb.sectors.AcquireSector(ctx, sector, stores.FTCache, 0, stores.PathStorage) paths, done, err := sb.sectors.AcquireSector(ctx, sector, stores.FTCache, 0, stores.PathStorage)