diff --git a/node/impl/storminer.go b/node/impl/storminer.go index b152b2ff0..25da71ef0 100644 --- a/node/impl/storminer.go +++ b/node/impl/storminer.go @@ -338,15 +338,7 @@ func (sm *StorageMinerAPI) SectorsListInStates(ctx context.Context, states []api // Use SectorsSummary from stats (prometheus) for faster result func (sm *StorageMinerAPI) SectorsSummary(ctx context.Context) (map[api.SectorState]int, error) { - sectorStats := sm.Miner.SectorsSummary(ctx) - out := make(map[api.SectorState]int) - - for st, count := range sectorStats { - state := api.SectorState(st) - out[state] = int(count) - } - - return out, nil + return sm.Miner.SectorsSummary(ctx), nil } func (sm *StorageMinerAPI) StorageLocal(ctx context.Context) (map[storiface.ID]string, error) { diff --git a/storage/pipeline/sealing.go b/storage/pipeline/sealing.go index 124dca9fc..936bd8b39 100644 --- a/storage/pipeline/sealing.go +++ b/storage/pipeline/sealing.go @@ -304,8 +304,18 @@ func (m *Sealing) TerminateSector(ctx context.Context, sid abi.SectorNumber) err return m.sectors.Send(uint64(sid), SectorTerminate{}) } -func (m *Sealing) SectorsSummary(ctx context.Context) map[SectorState]int64 { - return m.stats.byState +func (m *Sealing) SectorsSummary(ctx context.Context) map[api.SectorState]int { + m.stats.lk.Lock() + defer m.stats.lk.Unlock() + + out := make(map[api.SectorState]int) + + for st, count := range m.stats.byState { + state := api.SectorState(st) + out[state] = int(count) + } + + return out } func (m *Sealing) TerminateFlush(ctx context.Context) (*cid.Cid, error) {