mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MEDIUM: connection: Never cleanup server lists when freeing private conns
When a connection is released, depending on its state, it may be detached from the session and it may be removed from the server lists. The first case may happen for private or unsharable active connections. The second one should only be performed for idle or available connections. We never try to remove a connection from the server list if it is attached to a session. But it is also important to never try to remove a private connecion from the server lists, even if it is not attached to a session. Otherwise, the curr_used_conn server counter is decremented once too often. This bug was introduced by the commit 04a24c5ea ("MINOR: connection: don't check priv flag on free"). It is related to the issue #881. It only affects the 2.3, no backport is needed.
This commit is contained in:
parent
69a7b8fc6c
commit
96ddc8ab43
@ -473,7 +473,7 @@ static inline void conn_free(struct connection *conn)
|
||||
if (LIST_ADDED(&conn->session_list)) {
|
||||
session_unown_conn(conn->owner, conn);
|
||||
}
|
||||
else {
|
||||
else if (!(conn->flags & CO_FL_PRIVATE)) {
|
||||
if (obj_type(conn->target) == OBJ_TYPE_SERVER)
|
||||
srv_del_conn_from_list(__objt_server(conn->target), conn);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user