storagefsm: Auto-retry failed remove
This commit is contained in:
parent
59d2034cbb
commit
a6492b1ed6
6
extern/storage-sealing/fsm.go
vendored
6
extern/storage-sealing/fsm.go
vendored
@ -143,6 +143,9 @@ var fsmPlanners = map[SectorState]func(events []statemachine.Event, state *Secto
|
|||||||
on(SectorRemoved{}, Removed),
|
on(SectorRemoved{}, Removed),
|
||||||
on(SectorRemoveFailed{}, RemoveFailed),
|
on(SectorRemoveFailed{}, RemoveFailed),
|
||||||
),
|
),
|
||||||
|
RemoveFailed: planOne(
|
||||||
|
// SectorRemove (global)
|
||||||
|
),
|
||||||
Faulty: planOne(
|
Faulty: planOne(
|
||||||
on(SectorFaultReported{}, FaultReported),
|
on(SectorFaultReported{}, FaultReported),
|
||||||
),
|
),
|
||||||
@ -304,6 +307,9 @@ func (m *Sealing) plan(events []statemachine.Event, state *SectorInfo) (func(sta
|
|||||||
case Removed:
|
case Removed:
|
||||||
return nil, processed, nil
|
return nil, processed, nil
|
||||||
|
|
||||||
|
case RemoveFailed:
|
||||||
|
return m.handleRemoveFailed, processed, nil
|
||||||
|
|
||||||
// Faults
|
// Faults
|
||||||
case Faulty:
|
case Faulty:
|
||||||
return m.handleFaulty, processed, nil
|
return m.handleFaulty, processed, nil
|
||||||
|
8
extern/storage-sealing/states_failed.go
vendored
8
extern/storage-sealing/states_failed.go
vendored
@ -244,6 +244,14 @@ func (m *Sealing) handleFinalizeFailed(ctx statemachine.Context, sector SectorIn
|
|||||||
return ctx.Send(SectorRetryFinalize{})
|
return ctx.Send(SectorRetryFinalize{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Sealing) handleRemoveFailed(ctx statemachine.Context, sector SectorInfo) error {
|
||||||
|
if err := failedCooldown(ctx, sector); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return ctx.Send(SectorRemove{})
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Sealing) handleDealsExpired(ctx statemachine.Context, sector SectorInfo) error {
|
func (m *Sealing) handleDealsExpired(ctx statemachine.Context, sector SectorInfo) error {
|
||||||
// First make vary sure the sector isn't committed
|
// First make vary sure the sector isn't committed
|
||||||
si, err := m.api.StateSectorGetInfo(ctx.Context(), m.maddr, sector.SectorNumber, nil)
|
si, err := m.api.StateSectorGetInfo(ctx.Context(), m.maddr, sector.SectorNumber, nil)
|
||||||
|
Loading…
Reference in New Issue
Block a user