mirror of
https://github.com/haproxy/haproxy.git
synced 2026-06-09 00:32:33 -04:00
BUG/MEDIUM: leastconn: Unlock the write lock on allocation failure
When we fail to allocate a new tree element, we're still holding the write lock, so we should do an write unlock, not a read unlock, or the lock will get corrupted and most likely this will end in a deadlock. This should be backported up to 3.2.
This commit is contained in:
parent
4a540a4fb7
commit
c0aa9f01f1
1 changed files with 1 additions and 1 deletions
|
|
@ -437,7 +437,7 @@ static void fwlc_srv_reposition(struct server *s)
|
|||
tree_elt = fwlc_alloc_tree_elt(s->proxy, allocated_elt);
|
||||
if (tree_elt == NULL) {
|
||||
/* We failed to allocate memory, just try again later */
|
||||
HA_RWLOCK_RDUNLOCK(LBPRM_LOCK, &s->proxy->lbprm.lock);
|
||||
HA_RWLOCK_WRUNLOCK(LBPRM_LOCK, &s->proxy->lbprm.lock);
|
||||
_HA_ATOMIC_STORE(&s->lb_lock, 0);
|
||||
if (s->requeue_tasklet)
|
||||
tasklet_wakeup(s->requeue_tasklet);
|
||||
|
|
|
|||
Loading…
Reference in a new issue