Merge pull request #1168 from filecoin-project/bugs/invalid-state-transition
planCommitting must handle SectorCommitFailed
This commit is contained in:
commit
b60860456d
@ -205,6 +205,8 @@ func planCommitting(events []statemachine.Event, state *SectorInfo) error {
|
|||||||
state.State = api.SealCommitFailed
|
state.State = api.SealCommitFailed
|
||||||
case SectorSealFailed:
|
case SectorSealFailed:
|
||||||
state.State = api.CommitFailed
|
state.State = api.CommitFailed
|
||||||
|
case SectorCommitFailed:
|
||||||
|
state.State = api.CommitFailed
|
||||||
default:
|
default:
|
||||||
return xerrors.Errorf("planCommitting got event of unknown type %T, events: %+v", event.User, events)
|
return xerrors.Errorf("planCommitting got event of unknown type %T, events: %+v", event.User, events)
|
||||||
}
|
}
|
||||||
|
@ -83,3 +83,17 @@ func TestSeedRevert(t *testing.T) {
|
|||||||
m.planSingle(SectorProving{})
|
m.planSingle(SectorProving{})
|
||||||
require.Equal(m.t, m.state.State, api.Proving)
|
require.Equal(m.t, m.state.State, api.Proving)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPlanCommittingHandlesSectorCommitFailed(t *testing.T) {
|
||||||
|
m := test{
|
||||||
|
s: &Sealing{},
|
||||||
|
t: t,
|
||||||
|
state: &SectorInfo{State: api.Committing},
|
||||||
|
}
|
||||||
|
|
||||||
|
events := []statemachine.Event{{SectorCommitFailed{}}}
|
||||||
|
|
||||||
|
require.NoError(t, planCommitting(events, m.state))
|
||||||
|
|
||||||
|
require.Equal(t, api.SectorStates[api.CommitFailed], api.SectorStates[m.state.State])
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user