Skip to content

Commit

Permalink
fix(fsm): Apply return type must be bool type, or daprd runtime maybe…
Browse files Browse the repository at this point in the history
… panic (dapr#2626)

Co-authored-by: Yaron Schneider <[email protected]>
  • Loading branch information
1046102779 and yaron2 authored Jan 6, 2021
1 parent 80968db commit 113a0fb
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions pkg/placement/raft/fsm.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,27 +131,29 @@ func (c *FSM) removeMember(cmdData []byte) (bool, error) {

// Apply log is invoked once a log entry is committed.
func (c *FSM) Apply(log *raft.Log) interface{} {
buf := log.Data
cmdType := CommandType(buf[0])
var (
err error
updated bool
)

if log.Index < c.state.Index {
logging.Warnf("old: %d, new index: %d. skip apply", c.state.Index, log.Index)
return nil
return false
}

var err error
var updated bool
switch cmdType {
switch CommandType(log.Data[0]) {
case MemberUpsert:
updated, err = c.upsertMember(buf[1:])
updated, err = c.upsertMember(log.Data[1:])
case MemberRemove:
updated, err = c.removeMember(buf[1:])
updated, err = c.removeMember(log.Data[1:])
default:
err = errors.New("unimplemented command")
}

if err != nil {
return err
logging.Errorf("fsm apply entry log failed. data: %s, error: %s",
string(log.Data), err.Error())
return false
}

return updated
Expand Down

0 comments on commit 113a0fb

Please sign in to comment.