diff --git a/kes/retry.go b/kes/retry.go index bf04b86..432069d 100644 --- a/kes/retry.go +++ b/kes/retry.go @@ -22,14 +22,9 @@ type dnsResolver interface { LookupHost(ctx context.Context, host string) (addrs []string, err error) } -type randomNumberGenerator interface { - Intn(n int) int -} - type loadBalancer struct { enclave string endpoints []*loadBalancerEndpoint - rand randomNumberGenerator DNSResolver dnsResolver getLocalNetworks func() ([]net.Addr, error) sendRequest func(context.Context, *endpointRequest) (*http.Response, error) @@ -41,7 +36,6 @@ func newLoadBalancer(enclaveName string) *loadBalancer { DNSResolver: new(net.Resolver), getLocalNetworks: net.InterfaceAddrs, sendRequest: sendRequest, - rand: rand.New(rand.NewSource(time.Now().UnixNano())), } } @@ -114,9 +108,6 @@ func (lb *loadBalancer) prepareLoadBalancer(endpoints []string) { if lb.sendRequest == nil { lb.sendRequest = sendRequest } - if lb.rand == nil { - lb.rand = rand.New(rand.NewSource(time.Now().UnixNano())) - } ifNetworks := make(map[string]*net.IPNet) ifs, err := lb.getLocalNetworks() @@ -319,7 +310,7 @@ func (lb *loadBalancer) Send(ctx context.Context, client *retry, method string, endpointCount = len(lb.endpoints) tryCount = 0 fullRetry = false - R = lb.rand.Intn(len(lb.endpoints)) + R = rand.Intn(len(lb.endpoints)) nextEndpointIndex int ) diff --git a/kes/retry_test.go b/kes/retry_test.go index 0006ed6..699bdc6 100644 --- a/kes/retry_test.go +++ b/kes/retry_test.go @@ -9,7 +9,6 @@ import ( "context" "errors" "io" - "math/rand" "net" "net/http" "net/url" @@ -164,7 +163,6 @@ func TestPrepareLoadBalancer(t *testing.T) { enclave: "", DNSResolver: Resolver, getLocalNetworks: MockGetInterfaces, - rand: rand.New(rand.NewSource(time.Now().UnixNano())), } dnsErrorEndpoint := "https://minio.404:7373" @@ -223,7 +221,6 @@ func TestLoadBalancerSend_SingleHost(t *testing.T) { DNSResolver: Resolver, getLocalNetworks: MockGetInterfaces, sendRequest: MockSendRequest(200, false), - rand: rand.New(rand.NewSource(time.Now().UnixNano())), } retryClient := new(retry) @@ -287,7 +284,6 @@ func TestLoadBalancerSend_MultiHost(t *testing.T) { DNSResolver: Resolver, getLocalNetworks: MockGetInterfaces, sendRequest: MockSendRequest(200, false), - rand: rand.New(rand.NewSource(time.Now().UnixNano())), } retryClient := new(retry) @@ -378,21 +374,4 @@ func TestLoadBalancerSend_MultiHost(t *testing.T) { for i := range lb.endpoints { lb.endpoints[i].timeout = time.Now().AddDate(0, 0, -1) } - - // This test triggers a probe on all endpoints in order - // to clear all timeouts - mockRandom := new(MockRandomNumber) - lb.rand = mockRandom - mockRandom.Number = 0 - lb.sendRequest = MockSendRequest(200, false) - for i := 0; i < len(endpoints); i++ { - _, _ = lb.Send(ctx, retryClient, method, path, nil, options...) - mockRandom.Number++ - } - - for _, v := range lb.endpoints { - if !v.timeout.IsZero() { - t.Fatalf("Endpoint %s was expected to NOT be timed-out", v.addr) - } - } }