etcdserver/server.go
func (s *EtcdServer) Process(ctx context.Context, m raftpb.Message) error {
	if s.cluster.IsIDRemoved(types.ID(m.From)) {
		if lg := s.getLogger(); lg != nil {
			lg.Warn(
				"rejected Raft message from removed member",
				zap.String("local-member-id", s.ID().String()),
				zap.String("removed-member-id", types.ID(m.From).String()),
			)
		} else {
			plog.Warningf("reject message from removed member %s", types.ID(m.From).String())
		}
		return httptypes.NewHTTPError(http.StatusForbidden, "cannot process message from removed member")
	}
	if m.Type == raftpb.MsgApp {
		s.stats.RecvAppendReq(types.ID(m.From).String(), m.Size())
	}
	return s.r.Step(ctx, m)
}
func (s *EtcdServer) Process(ctx context.Context, m raftpb.Message) error {
	if s.cluster.IsIDRemoved(types.ID(m.From)) {
		if lg := s.getLogger(); lg != nil {
			lg.Warn(
				"rejected Raft message from removed member",
				zap.String("local-member-id", s.ID().String()),
				zap.String("removed-member-id", types.ID(m.From).String()),
			)
		} else {
			plog.Warningf("reject message from removed member %s", types.ID(m.From).String())
		}
		return httptypes.NewHTTPError(http.StatusForbidden, "cannot process message from removed member")
	}
	if m.Type == raftpb.MsgApp {
		s.stats.RecvAppendReq(types.ID(m.From).String(), m.Size())
	}
	return s.r.Step(ctx, m)
}
func ( s * EtcdServer ) Process ( ctx context . Context , m raftpb . Message ) error { if s . cluster . IsIDRemoved ( types . ID ( m . From ) ) { if lg := s . getLogger ( ) ; lg != nil { lg . Warn ( " " , zap . String ( " " , s . ID ( ) . String ( ) ) , zap . String ( " " , types . ID ( m . From ) . String ( ) ) , ) } else { plog . Warningf ( " " , types . ID ( m . From ) . String ( ) ) } return httptypes . NewHTTPError ( http . StatusForbidden , " " ) } if m . Type == raftpb . MsgApp { s . stats . RecvAppendReq ( types . ID ( m . From ) . String ( ) , m . Size ( ) ) } return s . r . Step ( ctx , m ) }
// Process takes a raft message and applies it to the server's raft state
// machine, respecting any timeout of the given context.
Process takes a raft message and applies it to the server s raft state machine respecting any timeout of the given context .