Merge pull request #1627 from hashicorp/rollback-nil-race

Ensure mount/auth tables are not nil when triggering rollback
This commit is contained in:
Jeff Mitchell 2016-07-18 22:03:38 -04:00 committed by GitHub
commit a68d34100b

View File

@ -192,13 +192,21 @@ func (c *Core) startRollback() error {
ret := []*MountEntry{}
c.mountsLock.RLock()
defer c.mountsLock.RUnlock()
for _, entry := range c.mounts.Entries {
ret = append(ret, entry)
// During teardown/setup after a leader change or unseal there could be
// something racy here so make sure the table isn't nil
if c.mounts != nil {
for _, entry := range c.mounts.Entries {
ret = append(ret, entry)
}
}
c.authLock.RLock()
defer c.authLock.RUnlock()
for _, entry := range c.auth.Entries {
ret = append(ret, entry)
// During teardown/setup after a leader change or unseal there could be
// something racy here so make sure the table isn't nil
if c.auth != nil {
for _, entry := range c.auth.Entries {
ret = append(ret, entry)
}
}
return ret
}