diff --git a/src/shardkv1/shardgrp/client.go b/src/shardkv1/shardgrp/client.go index 71f859c..e882708 100644 --- a/src/shardkv1/shardgrp/client.go +++ b/src/shardkv1/shardgrp/client.go @@ -2,7 +2,6 @@ package shardgrp import ( - "6.5840/kvsrv1/rpc" "6.5840/shardkv1/shardcfg" "6.5840/tester1" diff --git a/src/shardkv1/shardkv_test.go b/src/shardkv1/shardkv_test.go index 1107ccd..7d1aec6 100644 --- a/src/shardkv1/shardkv_test.go +++ b/src/shardkv1/shardkv_test.go @@ -67,7 +67,7 @@ func TestStaticOneShardGroup5A(t *testing.T) { // disconnect raft leader of shardgrp and check that keys are // still available - ts.disconnectClntFromLeader(ck.(*kvtest.TestClerk).Clnt, shardcfg.Gid1) + ts.disconnectClntFromLeader(shardcfg.Gid1) for i := 0; i < n; i++ { ts.CheckGet(ck, ka[i], va[i], rpc.Tversion(1)) // check the puts diff --git a/src/shardkv1/test.go b/src/shardkv1/test.go index 607b16c..5df61d2 100644 --- a/src/shardkv1/test.go +++ b/src/shardkv1/test.go @@ -178,25 +178,12 @@ func (ts *Test) leaveGroups(sck *shardctrler.ShardCtrler, gids []tester.Tgid) bo return true } -func (ts *Test) disconnectRaftLeader(gid tester.Tgid) (int, string) { - _, l := rsm.Leader(ts.Config, gid) - g := ts.Group(gid) - ln := g.SrvName(l) - g.DisconnectAll(l) - return l, ln -} - -func (ts *Test) reconnectOldLeader(gid tester.Tgid, l int) { - g := ts.Group(gid) - g.ConnectOne(l) -} - -func (ts *Test) disconnectClntFromLeader(clnt *tester.Clnt, gid tester.Tgid) int { - l, ln := ts.disconnectRaftLeader(gid) - p := ts.Group(gid).AllowServersExcept(l) - srvs := ts.Group(gid).SrvNamesTo(p) - clnt.Disconnect(ln) - clnt.ConnectTo(srvs) +func (ts *Test) disconnectClntFromLeader(gid tester.Tgid) int { + ok, l := rsm.Leader(ts.Config, gid) + if !ok { + log.Fatalf("Leader failed") + } + ts.Group(gid).ShutdownServer(l) return l } diff --git a/src/tester1/group.go b/src/tester1/group.go index 28849fa..8382d75 100644 --- a/src/tester1/group.go +++ b/src/tester1/group.go @@ -299,19 +299,6 @@ func (sg *ServerGrp) MakePartition(l int) ([]int, []int) { return p1, p2 } -func (sg *ServerGrp) AllowServersExcept(l int) []int { - n := len(sg.srvs) - 1 - p := make([]int, n) - j := 0 - for i, _ := range sg.srvs { - if i != l { - p[j] = i - j++ - } - } - return p -} - func (sg *ServerGrp) Partition(p1 []int, p2 []int) { //log.Printf("partition servers into: %v %v\n", p1, p2) for i := 0; i < len(p1); i++ {