mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MEDIUM: connections: Don't forget to unlock when killing a connection.
Commit 140237471e408736bb7162e68c572c710a66a526 made sure we hold the toremove_lock for the corresponding thread before removing a connection from its idle_orphan_conns list, however it failed to unlock it if we found a connection, leading to a deadlock, so add the missing deadlock. This should be backported to 2.1 and 2.0.
This commit is contained in:
parent
c633607c06
commit
849d4f047f
@ -1255,6 +1255,7 @@ int connect_server(struct stream *s)
|
|||||||
MT_LIST_ADDQ(&toremove_connections[i],
|
MT_LIST_ADDQ(&toremove_connections[i],
|
||||||
(struct mt_list *)&tokill_conn->list);
|
(struct mt_list *)&tokill_conn->list);
|
||||||
task_wakeup(idle_conn_cleanup[i], TASK_WOKEN_OTHER);
|
task_wakeup(idle_conn_cleanup[i], TASK_WOKEN_OTHER);
|
||||||
|
HA_SPIN_UNLOCK(OTHER_LOCK, &toremove_lock[tid]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
HA_SPIN_UNLOCK(OTHER_LOCK, &toremove_lock[tid]);
|
HA_SPIN_UNLOCK(OTHER_LOCK, &toremove_lock[tid]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user