backport of commit 7ec3867eea2ad3c405f15f9ab5447618685739cf (#24031)
Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com>
This commit is contained in:
parent
891eb6fd7c
commit
5efc0cb907
3
changelog/24027.txt
Normal file
3
changelog/24027.txt
Normal file
@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
expiration: Fix fatal error "concurrent map iteration and map write" when collecting metrics from leases.
|
||||
```
|
@ -884,7 +884,7 @@ func (m *ExpirationManager) Stop() error {
|
||||
// for the next ExpirationManager to handle them.
|
||||
newStrategy := ExpireLeaseStrategy(expireNoop)
|
||||
m.expireFunc.Store(&newStrategy)
|
||||
oldPending := m.pending
|
||||
oldPending := &m.pending
|
||||
m.pending, m.nonexpiring, m.irrevocable = sync.Map{}, sync.Map{}, sync.Map{}
|
||||
m.leaseCount = 0
|
||||
m.uniquePolicies = make(map[string][]string)
|
||||
@ -2490,7 +2490,7 @@ func (m *ExpirationManager) WalkTokens(walkFn ExpirationWalkFunction) error {
|
||||
}
|
||||
|
||||
m.pendingLock.RLock()
|
||||
toWalk := []sync.Map{m.pending, m.nonexpiring}
|
||||
toWalk := []*sync.Map{&m.pending, &m.nonexpiring}
|
||||
m.pendingLock.RUnlock()
|
||||
|
||||
for _, m := range toWalk {
|
||||
@ -2519,7 +2519,7 @@ func (m *ExpirationManager) walkLeases(walkFn leaseWalkFunction) error {
|
||||
}
|
||||
|
||||
m.pendingLock.RLock()
|
||||
toWalk := []sync.Map{m.pending, m.nonexpiring}
|
||||
toWalk := []*sync.Map{&m.pending, &m.nonexpiring}
|
||||
m.pendingLock.RUnlock()
|
||||
|
||||
for _, m := range toWalk {
|
||||
|
Loading…
Reference in New Issue
Block a user