Browse Source

Merge pull request #9558 from gyuho/propose

etcdserver: handle raft Propose error in v2 applier
Gyuho Lee 7 years ago
parent
commit
e9aa8fbcc3
1 changed files with 6 additions and 1 deletions
  1. 6 1
      etcdserver/v2_server.go

+ 6 - 1
etcdserver/v2_server.go

@@ -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()