]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: servers: Don't attempt to destroy idle connections if disabled.
authorOlivier Houchard <ohouchard@haproxy.com>
Wed, 5 Jun 2019 11:55:01 +0000 (13:55 +0200)
committerOlivier Houchard <cognet@ci0.org>
Wed, 5 Jun 2019 11:58:06 +0000 (13:58 +0200)
In connect_server(), when deciding if we should attempt to remove idle
connections, because we have to many file descriptors opened, don't attempt
to do so if idle connection pool is disabled (with pool-max-conn 0), as
if it is, srv->idle_orphan_conns won't even be allocated, and trying to
dereference it will cause a crash.

src/backend.c

index a9e20e0782c89869e3388fdf57b74cf4b90419fc..cfd24625c7c732773fe5696bf14cce1488f5d14e 100644 (file)
@@ -1335,8 +1335,8 @@ int connect_server(struct stream *s)
                                reuse = 0;
                }
        }
-       if ((!reuse || (srv_conn && !(srv_conn->flags & CO_FL_CONNECTED)))
-           && ha_used_fds > global.tune.pool_high_count) {
+       if (((!reuse || (srv_conn && !(srv_conn->flags & CO_FL_CONNECTED)))
+           && ha_used_fds > global.tune.pool_high_count) && srv->idle_orphan_conns) {
                struct connection *tokill_conn;
 
                /* We can't reuse a connection, and e have more FDs than deemd