|
|
|
@ -92,6 +92,30 @@ func testCleanupDeadServer(t *testing.T, raftVersion int) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAutopilot_CleanupDeadNonvoter(t *testing.T) {
|
|
|
|
|
dir1, s1 := testServer(t)
|
|
|
|
|
defer os.RemoveAll(dir1)
|
|
|
|
|
defer s1.Shutdown()
|
|
|
|
|
|
|
|
|
|
dir2, s2 := testServerDCBootstrap(t, "dc1", false)
|
|
|
|
|
defer os.RemoveAll(dir2)
|
|
|
|
|
defer s2.Shutdown()
|
|
|
|
|
|
|
|
|
|
testrpc.WaitForLeader(t, s1.RPC, "dc1")
|
|
|
|
|
|
|
|
|
|
// Have s2 join and then shut it down immediately before it gets a chance to
|
|
|
|
|
// be promoted to a voter.
|
|
|
|
|
joinLAN(t, s2, s1)
|
|
|
|
|
retry.Run(t, func(r *retry.R) {
|
|
|
|
|
r.Check(wantRaft([]*Server{s1, s2}))
|
|
|
|
|
})
|
|
|
|
|
s2.Shutdown()
|
|
|
|
|
|
|
|
|
|
retry.Run(t, func(r *retry.R) {
|
|
|
|
|
r.Check(wantRaft([]*Server{s1}))
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAutopilot_CleanupDeadServerPeriodic(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
dir1, s1 := testServerWithConfig(t, func(c *Config) {
|
|
|
|
|