Skip to content

Commit 1aa13de

Browse files
committed
WIP: add member id to client watch reponses, change validateOrdered to check memberID in events
1 parent 9314ef7 commit 1aa13de

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

tests/robustness/client/client.go

+1
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ func ToWatchResponse(r clientv3.WatchResponse, baseTime time.Time) model.WatchRe
316316
}
317317
resp.IsProgressNotify = r.IsProgressNotify()
318318
resp.Revision = r.Header.Revision
319+
resp.MemberId = r.Header.MemberId
319320
err := r.Err()
320321
if err != nil {
321322
resp.Error = r.Err().Error()

tests/robustness/model/watch.go

+1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ type WatchResponse struct {
2626
IsProgressNotify bool
2727
Revision int64
2828
Time time.Duration
29+
MemberId uint64
2930
Error string
3031
}

tests/robustness/validate/watch.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,17 @@ func validateBookmarkable(lg *zap.Logger, report report.ClientReport) (err error
125125

126126
func validateOrdered(lg *zap.Logger, report report.ClientReport) (err error) {
127127
for _, op := range report.Watch {
128-
var lastEventRevision int64 = 1
128+
lastEventRevision := make(map[uint64]int64)
129129
for _, resp := range op.Responses {
130130
for _, event := range resp.Events {
131-
if event.Revision < lastEventRevision {
132-
lg.Error("Broke watch guarantee", zap.String("guarantee", "ordered"), zap.Int("client", report.ClientID), zap.Int64("revision", event.Revision))
131+
if _, ok := lastEventRevision[resp.MemberId]; !ok {
132+
lastEventRevision[resp.MemberId] = 1
133+
}
134+
if event.Revision < lastEventRevision[resp.MemberId] {
135+
lg.Error("Broke watch guarantee", zap.String("guarantee", "ordered"), zap.Int("client", report.ClientID), zap.Int64("revision", event.Revision), zap.Uint64("member", resp.MemberId))
133136
err = errBrokeOrdered
134137
}
135-
lastEventRevision = event.Revision
138+
lastEventRevision[resp.MemberId] = event.Revision
136139
}
137140
}
138141
}

0 commit comments

Comments
 (0)