Merge pull request #890 from go-redis/fix/close-nil-sentinel

Fix closing nil sentinel
This commit is contained in:
Vladimir Mihailenco 2018-10-25 09:51:40 +03:00 committed by GitHub
commit b3d9bf10f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 2 deletions

View File

@ -181,8 +181,11 @@ type sentinelFailover struct {
func (c *sentinelFailover) Close() error { func (c *sentinelFailover) Close() error {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
if c.sentinel != nil {
return c.closeSentinel() return c.closeSentinel()
} }
return nil
}
func (c *sentinelFailover) Pool() *pool.ConnPool { func (c *sentinelFailover) Pool() *pool.ConnPool {
c.poolOnce.Do(func() { c.poolOnce.Do(func() {
@ -240,7 +243,7 @@ func (c *sentinelFailover) masterAddr() (string, error) {
if err != nil { if err != nil {
internal.Logf("sentinel: GetMasterAddrByName master=%q failed: %s", internal.Logf("sentinel: GetMasterAddrByName master=%q failed: %s",
c.masterName, err) c.masterName, err)
sentinel.Close() _ = sentinel.Close()
continue continue
} }