diff --git a/etcdserver/v3_server.go b/etcdserver/v3_server.go index b3f773274e1e..9a543d807498 100644 --- a/etcdserver/v3_server.go +++ b/etcdserver/v3_server.go @@ -582,7 +582,12 @@ func (s *EtcdServer) processInternalRaftRequestOnce(ctx context.Context, r pb.In defer cancel() start := time.Now() - s.r.Propose(cctx, data) + err = s.r.Propose(cctx, data) + if err != nil { + proposalsFailed.Inc() + s.w.Trigger(id, nil) // Gc failed + return nil, err + } proposalsPending.Inc() defer proposalsPending.Dec()