server: proper request cancellation for range

This commit is contained in:
jingyih
2020-11-05 08:18:31 -08:00
parent 6e800b9b01
commit 0558e379c3
10 changed files with 57 additions and 38 deletions

View File

@@ -16,6 +16,7 @@ package mvcc
import (
"bytes"
"context"
"crypto/rand"
"encoding/binary"
"fmt"
@@ -213,7 +214,7 @@ func TestStoreRange(t *testing.T) {
b.tx.rangeRespc <- tt.r
fi.indexRangeRespc <- tt.idxr
ret, err := s.Range([]byte("foo"), []byte("goo"), ro)
ret, err := s.Range(context.TODO(), []byte("foo"), []byte("goo"), ro)
if err != nil {
t.Errorf("#%d: err = %v, want nil", i, err)
}
@@ -455,7 +456,7 @@ func TestRestoreDelete(t *testing.T) {
defer s.Close()
for i := 0; i < 20; i++ {
ks := fmt.Sprintf("foo-%d", i)
r, err := s.Range([]byte(ks), nil, RangeOptions{})
r, err := s.Range(context.TODO(), []byte(ks), nil, RangeOptions{})
if err != nil {
t.Fatal(err)
}
@@ -502,7 +503,7 @@ func TestRestoreContinueUnfinishedCompaction(t *testing.T) {
// wait for scheduled compaction to be finished
time.Sleep(100 * time.Millisecond)
if _, err := s.Range([]byte("foo"), nil, RangeOptions{Rev: 1}); err != ErrCompacted {
if _, err := s.Range(context.TODO(), []byte("foo"), nil, RangeOptions{Rev: 1}); err != ErrCompacted {
t.Errorf("range on compacted rev error = %v, want %v", err, ErrCompacted)
}
// check the key in backend is deleted
@@ -676,7 +677,7 @@ func TestConcurrentReadNotBlockingWrite(t *testing.T) {
// readTx2 simulates a short read request
readTx2 := s.Read(traceutil.TODO())
ro := RangeOptions{Limit: 1, Rev: 0, Count: false}
ret, err := readTx2.Range([]byte("foo"), nil, ro)
ret, err := readTx2.Range(context.TODO(), []byte("foo"), nil, ro)
if err != nil {
t.Fatalf("failed to range: %v", err)
}
@@ -693,7 +694,7 @@ func TestConcurrentReadNotBlockingWrite(t *testing.T) {
}
readTx2.End()
ret, err = readTx1.Range([]byte("foo"), nil, ro)
ret, err = readTx1.Range(context.TODO(), []byte("foo"), nil, ro)
if err != nil {
t.Fatalf("failed to range: %v", err)
}
@@ -760,7 +761,7 @@ func TestConcurrentReadTxAndWrite(t *testing.T) {
tx := s.Read(traceutil.TODO())
mu.Unlock()
// get all keys in backend store, and compare with wKVs
ret, err := tx.Range([]byte("\x00000000"), []byte("\xffffffff"), RangeOptions{})
ret, err := tx.Range(context.TODO(), []byte("\x00000000"), []byte("\xffffffff"), RangeOptions{})
tx.End()
if err != nil {
t.Errorf("failed to range keys: %v", err)