etcdserver: handle raft Propose error in v2 applier

Handle "raft.ErrProposalDropped" as in v3 applier.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
release-3.4
Gyuho Lee 2018-04-10 13:59:40 -07:00
parent 943962d419
commit b38e138baf
1 changed files with 6 additions and 1 deletions

View File

@ -101,7 +101,12 @@ func (a *reqV2HandlerEtcdServer) processRaftRequest(ctx context.Context, r *Requ
ch := a.s.w.Register(r.ID)
start := time.Now()
a.s.r.Propose(ctx, data)
err = a.s.r.Propose(ctx, data)
if err != nil {
proposalsFailed.Inc()
a.s.w.Trigger(r.ID, nil)
return Response{}, err
}
proposalsPending.Inc()
defer proposalsPending.Dec()