Skip to content

Commit d6c0127

Browse files
authored
Merge pull request #18321 from fuweid/mvcc-test/should-not-allow-duplicate-keys-in-one-txn
mvcc/*_test.go: should not use duplicate revision.Main for one key
2 parents 010d462 + 5e178e2 commit d6c0127

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

server/storage/mvcc/key_index_test.go

+25-24
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func TestKeyIndexGet(t *testing.T) {
2727
// modified: 16
2828
// generations:
2929
// {empty}
30-
// {{14, 0}[1], {14, 1}[2], {16, 0}(t)[3]}
30+
// {{14, 0}[1], {15, 1}[2], {16, 0}(t)[3]}
3131
// {{8, 0}[1], {10, 0}[2], {12, 0}(t)[3]}
3232
// {{2, 0}[1], {4, 0}[2], {6, 0}(t)[3]}
3333
ki := newTestKeyIndex(zaptest.NewLogger(t))
@@ -45,8 +45,8 @@ func TestKeyIndexGet(t *testing.T) {
4545
{16, Revision{}, Revision{}, 0, ErrRevisionNotFound},
4646

4747
// get on generation 3
48-
{15, Revision{Main: 14, Sub: 1}, Revision{Main: 14}, 2, nil},
49-
{14, Revision{Main: 14, Sub: 1}, Revision{Main: 14}, 2, nil},
48+
{15, Revision{Main: 15, Sub: 1}, Revision{Main: 14}, 2, nil},
49+
{14, Revision{Main: 14}, Revision{Main: 14}, 1, nil},
5050

5151
{13, Revision{}, Revision{}, 0, ErrRevisionNotFound},
5252
{12, Revision{}, Revision{}, 0, ErrRevisionNotFound},
@@ -97,7 +97,8 @@ func TestKeyIndexSince(t *testing.T) {
9797
Revision{Main: 8},
9898
Revision{Main: 10},
9999
Revision{Main: 12},
100-
Revision{Main: 14, Sub: 1},
100+
Revision{Main: 14},
101+
Revision{Main: 15, Sub: 1},
101102
Revision{Main: 16},
102103
}
103104
tests := []struct {
@@ -106,7 +107,7 @@ func TestKeyIndexSince(t *testing.T) {
106107
wrevs []Revision
107108
}{
108109
{17, nil},
109-
{16, allRevs[6:]},
110+
{16, allRevs[7:]},
110111
{15, allRevs[6:]},
111112
{14, allRevs[5:]},
112113
{13, allRevs[5:]},
@@ -231,7 +232,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
231232
generations: []generation{
232233
{created: Revision{Main: 2}, ver: 3, revs: []Revision{Revision{Main: 2}, Revision{Main: 4}, Revision{Main: 6}}},
233234
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
234-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
235+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
235236
{},
236237
},
237238
},
@@ -245,7 +246,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
245246
generations: []generation{
246247
{created: Revision{Main: 2}, ver: 3, revs: []Revision{Revision{Main: 2}, Revision{Main: 4}, Revision{Main: 6}}},
247248
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
248-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
249+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
249250
{},
250251
},
251252
},
@@ -261,7 +262,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
261262
generations: []generation{
262263
{created: Revision{Main: 2}, ver: 3, revs: []Revision{Revision{Main: 2}, Revision{Main: 4}, Revision{Main: 6}}},
263264
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
264-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
265+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
265266
{},
266267
},
267268
},
@@ -277,7 +278,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
277278
generations: []generation{
278279
{created: Revision{Main: 2}, ver: 3, revs: []Revision{Revision{Main: 4}, Revision{Main: 6}}},
279280
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
280-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
281+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
281282
{},
282283
},
283284
},
@@ -293,7 +294,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
293294
generations: []generation{
294295
{created: Revision{Main: 2}, ver: 3, revs: []Revision{Revision{Main: 4}, Revision{Main: 6}}},
295296
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
296-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
297+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
297298
{},
298299
},
299300
},
@@ -308,7 +309,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
308309
modified: Revision{Main: 16},
309310
generations: []generation{
310311
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
311-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
312+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
312313
{},
313314
},
314315
},
@@ -321,7 +322,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
321322
modified: Revision{Main: 16},
322323
generations: []generation{
323324
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
324-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
325+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
325326
{},
326327
},
327328
},
@@ -334,7 +335,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
334335
modified: Revision{Main: 16},
335336
generations: []generation{
336337
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
337-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
338+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
338339
{},
339340
},
340341
},
@@ -349,7 +350,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
349350
modified: Revision{Main: 16},
350351
generations: []generation{
351352
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 8}, Revision{Main: 10}, Revision{Main: 12}}},
352-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
353+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
353354
{},
354355
},
355356
},
@@ -364,7 +365,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
364365
modified: Revision{Main: 16},
365366
generations: []generation{
366367
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 10}, Revision{Main: 12}}},
367-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
368+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
368369
{},
369370
},
370371
},
@@ -379,7 +380,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
379380
modified: Revision{Main: 16},
380381
generations: []generation{
381382
{created: Revision{Main: 8}, ver: 3, revs: []Revision{Revision{Main: 10}, Revision{Main: 12}}},
382-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
383+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
383384
{},
384385
},
385386
},
@@ -393,7 +394,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
393394
key: []byte("foo"),
394395
modified: Revision{Main: 16},
395396
generations: []generation{
396-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
397+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
397398
{},
398399
},
399400
},
@@ -405,7 +406,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
405406
key: []byte("foo"),
406407
modified: Revision{Main: 16},
407408
generations: []generation{
408-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
409+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
409410
{},
410411
},
411412
},
@@ -417,12 +418,12 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
417418
key: []byte("foo"),
418419
modified: Revision{Main: 16},
419420
generations: []generation{
420-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
421+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14}, Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
421422
{},
422423
},
423424
},
424425
map[Revision]struct{}{
425-
Revision{Main: 14, Sub: 1}: {},
426+
Revision{Main: 14}: {},
426427
},
427428
},
428429
{
@@ -431,12 +432,12 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
431432
key: []byte("foo"),
432433
modified: Revision{Main: 16},
433434
generations: []generation{
434-
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 14, Sub: 1}, Revision{Main: 16}}},
435+
{created: Revision{Main: 14}, ver: 3, revs: []Revision{Revision{Main: 15, Sub: 1}, Revision{Main: 16}}},
435436
{},
436437
},
437438
},
438439
map[Revision]struct{}{
439-
Revision{Main: 14, Sub: 1}: {},
440+
Revision{Main: 15, Sub: 1}: {},
440441
},
441442
},
442443
{
@@ -692,7 +693,7 @@ func newTestKeyIndex(lg *zap.Logger) *keyIndex {
692693
// modified: 16
693694
// generations:
694695
// {empty}
695-
// {{14, 0}[1], {14, 1}[2], {16, 0}(t)[3]}
696+
// {{14, 0}[1], {15, 1}[2], {16, 0}(t)[3]}
696697
// {{8, 0}[1], {10, 0}[2], {12, 0}(t)[3]}
697698
// {{2, 0}[1], {4, 0}[2], {6, 0}(t)[3]}
698699

@@ -704,7 +705,7 @@ func newTestKeyIndex(lg *zap.Logger) *keyIndex {
704705
ki.put(lg, 10, 0)
705706
ki.tombstone(lg, 12, 0)
706707
ki.put(lg, 14, 0)
707-
ki.put(lg, 14, 1)
708+
ki.put(lg, 15, 1)
708709
ki.tombstone(lg, 16, 0)
709710
return ki
710711
}

0 commit comments

Comments
 (0)