id summary reporter owner description type status priority milestone component version resolution keywords cc uname nginx_version 1136 `ngx_stream_proxy_process_connection` does not terminate udp session correctly with param `proxy_responses` lrita@… "I have a service which collects some statistics informations by udp protocol, only receive request and no response. So I use nginx as a loadbalancing in front of the service. My nginx.conf : {{{ stream { upstream hund { server 127.0.0.1:5000; server 127.0.0.1:5001; server 127.0.0.1:5002; } server { listen 4000 udp; proxy_timeout 0; proxy_responses 0; proxy_pass hund; } } }}} But the nginx mark the servers of upstream failed. The `proxy_responses` means backend server has no response in doc. When I view the code of this issue, I find `ngx_stream_proxy_process_connection` maybe not terminate udp session correctly. In my opinion the code of `ngx_stream_proxy_process_connection` {{{ if (s->connection->type == SOCK_DGRAM) { if (pscf->responses == NGX_MAX_INT32_VALUE) { /* * successfully terminate timed out UDP session * with unspecified number of responses */ pc->read->ready = 0; pc->read->eof = 1; ngx_stream_proxy_process(s, 1, 0); return; } if (u->received == 0) { ngx_stream_proxy_next_upstream(s); return; } } }}} shound be {{{ if (s->connection->type == SOCK_DGRAM) { if (pscf->responses == 0 || pscf->responses == NGX_MAX_INT32_VALUE) { /* * successfully terminate timed out UDP session * with unspecified number of responses or no response */ pc->read->ready = 0; pc->read->eof = 1; ngx_stream_proxy_process(s, 1, 0); return; } if (u->received == 0) { ngx_stream_proxy_next_upstream(s); return; } } }}}" defect closed minor nginx-module 1.11.x wontfix stream udp proxy_responses Linux localhost.localdomain 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux "nginx version: openresty/1.11.2.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/nginx --with-debug --with-cc-opt='-DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC -O2' --add-module=../ngx_devel_kit-0.3.0 --add-module=../echo-nginx-module-0.60 --add-module=../xss-nginx-module-0.05 --add-module=../ngx_coolkit-0.2rc3 --add-module=../set-misc-nginx-module-0.31 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.06 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.7 --add-module=../ngx_lua_upstream-0.06 --add-module=../headers-more-nginx-module-0.32 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.17 --add-module=../redis2-nginx-module-0.13 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.14 --add-module=../rds-csv-nginx-module-0.07 --with-ld-opt=-Wl,-rpath,/usr/luajit/lib --with-stream --with-http_ssl_module"