func checkRequestRange(kv mvcc.KV, reqs []*etcdserverpb.RequestUnion) error { for _, requ := range reqs { tv, ok := requ.Request.(*etcdserverpb.RequestUnion_RequestRange) if !ok { continue } greq := tv.RequestRange if greq == nil || greq.Revision == 0 { continue } if greq.Revision > kv.Rev() { return mvcc.ErrFutureRev } if greq.Revision < kv.FirstRev() { return mvcc.ErrCompacted } } return nil }