mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-02 03:27:54 +00:00
Vault 7338/fix retry join (#16550)
* storage/raft: Fix cluster init with retry_join Commit 8db66f4853abce3f432adcf1724b1f237b275415 introduced an error wherein a join() would return nil (no error) with no information on its channel if a joining node had been initialized. This was not handled properly by the caller and resulted in a canceled `retry_join`. Fix this by handling the `nil` channel respone by treating it as an error and allowing the existing mechanics to work as intended. * storage/raft: Improve retry_join go test * storage/raft: Make VerifyRaftPeers pollable * storage/raft: Add changelog entry for retry_join fix * storage/raft: Add description to VerifyRaftPeers
This commit is contained in:
@@ -623,7 +623,12 @@ func GenerateDebugLogs(t testing.T, client *api.Client) chan struct{} {
|
||||
return stopCh
|
||||
}
|
||||
|
||||
func VerifyRaftPeers(t testing.T, client *api.Client, expected map[string]bool) {
|
||||
// VerifyRaftPeers verifies that the raft configuration contains a given set of peers.
|
||||
// The `expected` contains a map of expected peers. Existing entries are deleted
|
||||
// from the map by removing entries whose keys are in the raft configuration.
|
||||
// Remaining entries result in an error return so that the caller can poll for
|
||||
// an expected configuration.
|
||||
func VerifyRaftPeers(t testing.T, client *api.Client, expected map[string]bool) error {
|
||||
t.Helper()
|
||||
|
||||
resp, err := client.Logical().Read("sys/storage/raft/configuration")
|
||||
@@ -655,8 +660,10 @@ func VerifyRaftPeers(t testing.T, client *api.Client, expected map[string]bool)
|
||||
// If the collection is non-empty, it means that the peer was not found in
|
||||
// the response.
|
||||
if len(expected) != 0 {
|
||||
t.Fatalf("failed to read configuration successfully, expected peers not found in configuration list: %v", expected)
|
||||
return fmt.Errorf("failed to read configuration successfully, expected peers not found in configuration list: %v", expected)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func TestMetricSinkProvider(gaugeInterval time.Duration) func(string) (*metricsutil.ClusterMetricSink, *metricsutil.MetricsHelper) {
|
||||
|
||||
Reference in New Issue
Block a user