mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Update conssitent_index when applying fails
When clients have no permission to perform whatever operation, then the applying may fail. We should also move consistent_index forward in this case, otherwise the consitent_index may smaller than the snapshot index.
This commit is contained in:
@@ -46,6 +46,33 @@ func TestV3AuthEmptyUserGet(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestV3AuthEmptyUserPut ensures that a put with an empty user will return an empty user error,
|
||||
// and the consistent_index should be moved forward even the apply-->Put fails.
|
||||
func TestV3AuthEmptyUserPut(t *testing.T) {
|
||||
BeforeTest(t)
|
||||
clus := NewClusterV3(t, &ClusterConfig{
|
||||
Size: 1,
|
||||
SnapshotCount: 3,
|
||||
})
|
||||
defer clus.Terminate(t)
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.TODO(), 30*time.Second)
|
||||
defer cancel()
|
||||
|
||||
api := toGRPC(clus.Client(0))
|
||||
authSetupRoot(t, api.Auth)
|
||||
|
||||
// The SnapshotCount is 3, so there must be at least 3 new snapshot files being created.
|
||||
// The VERIFY logic will check whether the consistent_index >= last snapshot index on
|
||||
// cluster terminating.
|
||||
for i := 0; i < 10; i++ {
|
||||
_, err := api.KV.Put(ctx, &pb.PutRequest{Key: []byte("foo"), Value: []byte("bar")})
|
||||
if !eqErrGRPC(err, rpctypes.ErrUserEmpty) {
|
||||
t.Fatalf("got %v, expected %v", err, rpctypes.ErrUserEmpty)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestV3AuthTokenWithDisable tests that auth won't crash if
|
||||
// given a valid token when authentication is disabled
|
||||
func TestV3AuthTokenWithDisable(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user