avoid concurrenct use of rand.NewSource (#10543)

This commit is contained in:
Harshavardhana 2020-09-22 15:34:27 -07:00 committed by GitHub
parent 4c54ed8748
commit 0537a21b79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 7 deletions

View File

@ -354,12 +354,10 @@ func getHostsSlice(records []dns.SrvRecord) []string {
return hosts return hosts
} }
var rng = rand.New(rand.NewSource(time.Now().UTC().UnixNano()))
// returns an online host (and corresponding port) from a slice of DNS records // returns an online host (and corresponding port) from a slice of DNS records
func getHostFromSrv(records []dns.SrvRecord) (host string) { func getHostFromSrv(records []dns.SrvRecord) (host string) {
hosts := getHostsSlice(records) hosts := getHostsSlice(records)
rng := rand.New(rand.NewSource(time.Now().UTC().UnixNano()))
var d net.Dialer var d net.Dialer
var retry int var retry int
for retry < len(hosts) { for retry < len(hosts) {

View File

@ -1235,10 +1235,10 @@ func getTestWebRPCResponse(resp *httptest.ResponseRecorder, data interface{}) er
return nil return nil
} }
var src = rand.NewSource(UTCNow().UnixNano())
// Function to generate random string for bucket/object names. // Function to generate random string for bucket/object names.
func randString(n int) string { func randString(n int) string {
src := rand.NewSource(UTCNow().UnixNano())
b := make([]byte, n) b := make([]byte, n)
// A rand.Int63() generates 63 random bits, enough for letterIdxMax letters! // A rand.Int63() generates 63 random bits, enough for letterIdxMax letters!
for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; { for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; {

View File

@ -30,11 +30,11 @@ import (
humanize "github.com/dustin/go-humanize" humanize "github.com/dustin/go-humanize"
) )
var randSrc = rand.New(rand.NewSource(time.Now().UnixNano()))
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
func newRandString(length int) string { func newRandString(length int) string {
randSrc := rand.New(rand.NewSource(time.Now().UnixNano()))
b := make([]byte, length) b := make([]byte, length)
for i := range b { for i := range b {
b[i] = charset[randSrc.Intn(len(charset))] b[i] = charset[randSrc.Intn(len(charset))]