update
This commit is contained in:
parent
d21b9ffe74
commit
fa6877b02d
@ -2,7 +2,6 @@ package shardgrp
|
||||
|
||||
import (
|
||||
|
||||
|
||||
"6.5840/kvsrv1/rpc"
|
||||
"6.5840/shardkv1/shardcfg"
|
||||
"6.5840/tester1"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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++ {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user