Opened 6 years ago
Closed 2 years ago
#1226 closed defect (fixed)
nginx behaves weirdly when using eventport as event engine on Solaris
|Reported by:||Eugene Zheganin||Owned by:|
|uname -a:||SunOS hyperion 5.11 11.2 i86pc i386 i86pc|
nginx version: nginx/1.11.11
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-http_xslt_module --with-http_image_filter_module --with-pcre=../pcre-8.39 --with-pcre-jit --with-cc-opt=-I/usr/local/gd2/include --with-threads --with-ld-opt='-m64 -L/usr/local/gd2/lib -L/usr/local/libmaxminddb/lib' --with-http_secure_link_module --with-pcre-opt=-m64 --with-http_v2_module --with-http_stub_status_module --with-poll_module --with-select_module --with-openssl=/home/emz/src/openssl-1.0.2g --add-module=/home/emz/src/nginx-push-stream-module-master --add-module=/usr/local/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.6/ext/nginx --add-module=/home/emz/src/nginx_geoip2 --add-module=/home/emz/src/ngx_http_auth_pam_module-1.4 --add-module=/home/emz/src/nginx-module-vts-0.1.14
nginx behaves weirdly when using eventport as event engine. I tried to use eventport on Solaris when I first started using nginx, but the experience was discouraging: nginx behaved weirdly, mostly when entering indefinite timeouts during handling requests. I switched to /dev/poll and since then it worked flawlessly. Some time ago I saw a discussion stating that a work has been done on the eventport better support, so I compiled new 1.11.11 version and decided to give eventport in nginx another chance. Sadly, nothing has changed: nginx still enters idefinite loops when handling requests with eventport. This looks like the web application really waits for something, and the browser just keeps spinning the loader icon. When changed to /dev/poll and restarting nginx everything starts working back. No errors are logged in the logs.
Change History (3)
comment:1 by , 6 years ago
|Status:||new → accepted|
comment:2 by , 2 years ago
As of nginx 1.19.9, known issues with the eventport implementation in nginx are fixed. Relevant changes: 9ca8fb98ef1c, da0a85e91587, e0844646099b, eb54227110f0, b1302f1dd2f6, 1bf8ab7063de. With these changes, it is now possible to run nginx test suite with
use eventport; without errors.
Note that there is a known issue in the event port interface itself (see here, here, and here). It seems to be fixed in Solaris 11.4, but not in previous versions: at least with Solaris 11.3 I'm able to see the issue sporadically when running
proxy_cache_use_stale.t, it hangs on exit due to previously lost events on the socketpair used as a channel to deliver control messages from master process to workers. No workarounds are planned for this issue, upgrade to the latest Solaris version might be needed for eventport to work properly.
comment:3 by , 2 years ago
|Status:||accepted → closed|
There are problems with eventport implementation, known for at least several years now, and these can be easily reproduced by running our test suite with 'use eventport' added to test configurations.
Unfortunately, these problems are very low priority due to minor popularity of Solaris. Consider using
/dev/pollinstead, which is the default, well tested and has no known problems.