❦ 28 juillet 2017 12:09 +0200, "Arnaud B." <arn...@arnaudb.net> :
> I'm having an issue on debian 9's stable version of HAProxy : > > https://dooby.fr/y/j9qgknb > > I have to regularly reload haproxy to fetch new configurations, and it > now always result on a set of undying pids. > > If I strace pid 2677 on this screenshot : > $ strace -p 2677 > strace: Process 2677 attached > epoll_wait(0, [], 200, 18) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 12) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 14) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 13) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 121) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 6) = 0 > epoll_wait(0, [], 200, 0) = 0 > epoll_wait(0, [], 200, 22) = 0 > > if I check what's going on on the network level for this pid : > $ ss -lntpuae |grep -i 'pid=2677' > udp UNCONN 0 0 *:28382 > *:* > users:(("haproxy",pid=2677,fd=14),("haproxy",pid=2611,fd=14)) > ino:1822334707 sk:aa61 --> For information, haproxy -vv is: HA-Proxy version 1.7.5-2 2017/05/17 Copyright 2000-2017 Willy Tarreau <wi...@haproxy.org> Build options : TARGET = linux2628 CPU = generic CC = gcc CFLAGS = -g -O2 -fdebug-prefix-map=/build/haproxy-2dHYaz/haproxy-1.7.5=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 OPTIONS = USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1 USE_NS=1 Default settings : maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 Encrypted password support via crypt(3): yes Built with zlib version : 1.2.8 Running on zlib version : 1.2.8 Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip") Built with OpenSSL version : OpenSSL 1.1.0e 16 Feb 2017 Running on OpenSSL version : OpenSSL 1.1.0f 25 May 2017 OpenSSL library supports TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL library supports prefer-server-ciphers : yes Built with PCRE version : 8.39 2016-06-14 Running on PCRE version : 8.39 2016-06-14 PCRE library supports JIT : no (USE_PCRE_JIT not set) Built with Lua version : Lua 5.3.3 Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND Built with network namespace support Available polling systems : epoll : pref=300, test result OK poll : pref=200, test result OK select : pref=150, test result OK Total: 3 (3 usable), will use epoll. Available filters : [COMP] compression [TRACE] trace [SPOE] spoe On your screenshot, the user is www-data while on lsof, this is haproxy. Handover between HAProxy instances is done through signal, maybe you reloaded the configuration with a change of user. The new HAProxy cannot signal the old one to shutdown in this case. However, this wouldn't explain why lsof and htop don't agree. -- Fame is a vapor; popularity an accident; the only earthly certainty is oblivion. -- Mark Twain