fix: storagefsm: Fix error loop on bad event
This commit is contained in:
parent
97c95a4e82
commit
d9a1ecd387
2
extern/storage-sealing/fsm.go
vendored
2
extern/storage-sealing/fsm.go
vendored
@ -399,7 +399,7 @@ func (m *Sealing) plan(events []statemachine.Event, state *SectorInfo) (func(sta
|
||||
|
||||
processed, err := p(events, state)
|
||||
if err != nil {
|
||||
return nil, 0, xerrors.Errorf("running planner for state %s failed: %w", state.State, err)
|
||||
return nil, processed, xerrors.Errorf("running planner for state %s failed: %w", state.State, err)
|
||||
}
|
||||
|
||||
/////
|
||||
|
27
extern/storage-sealing/fsm_test.go
vendored
27
extern/storage-sealing/fsm_test.go
vendored
@ -323,6 +323,33 @@ func TestBrokenState(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestBadEvent(t *testing.T) {
|
||||
var notif []struct{ before, after SectorInfo }
|
||||
ma, _ := address.NewIDAddress(55151)
|
||||
m := test{
|
||||
s: &Sealing{
|
||||
maddr: ma,
|
||||
stats: SectorStats{
|
||||
bySector: map[abi.SectorID]SectorState{},
|
||||
byState: map[SectorState]int64{},
|
||||
},
|
||||
notifee: func(before, after SectorInfo) {
|
||||
notif = append(notif, struct{ before, after SectorInfo }{before, after})
|
||||
},
|
||||
},
|
||||
t: t,
|
||||
state: &SectorInfo{State: Proving},
|
||||
}
|
||||
|
||||
_, processed, err := m.s.Plan([]statemachine.Event{{User: SectorPacked{}}}, m.state)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(1), processed)
|
||||
require.Equal(m.t, m.state.State, Proving)
|
||||
|
||||
require.Len(t, m.state.Log, 2)
|
||||
require.Contains(t, m.state.Log[1].Message, "received unexpected event")
|
||||
}
|
||||
|
||||
func TestTicketExpired(t *testing.T) {
|
||||
var notif []struct{ before, after SectorInfo }
|
||||
ma, _ := address.NewIDAddress(55151)
|
||||
|
Loading…
Reference in New Issue
Block a user