FreeBSD 11.1-RELEASE-p4 - nginx/1.15.6 accept4() ERR#35 'Resource temporarily unavailable'

Igor A. Ippolitov iippolitov на nginx.com
Пн Ноя 12 09:33:26 UTC 2018


Добрый день.

Отдельно любопытно, зачем вы решили проверить процесс, если всё работает.

Насколько я понимаю, сокет в неблокирующем режиме, процесс пытается 
принять соединение и не успевает этого сделать (принимает другой 
процесс). Процесс получает "ошибку", которая говорит процессу, что он 
опоздал. Всё хорошо, можно ничего не трогать.

On 09.11.2018 20:40, actionmanager wrote:
> Здравствуйте,
>
> FreeBSD 11.1-RELEASE-p4
>
> Связка nginx + phpfpm
>
> nginx version: nginx/1.15.6
> built by clang 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0)
> built with OpenSSL 1.0.2k-freebsd  26 Jan 2017
> TLS SNI support enabled
> configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
> /usr/local/include' --with-ld-opt='-L /usr/local/lib'
> --conf-path=/usr/local/etc/nginx/nginx.conf
> --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
> --error-log-path=/var/log/nginx/error.log --user=www --group=www
> --modules-path=/usr/local/libexec/nginx --with-file-aio
> --http-client-body-temp-path=/var/tmp/nginx/client_body_temp
> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
> --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
> --http-scgi-temp-path=/var/tmp/nginx/scgi_temp
> --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
> --http-log-path=/var/log/nginx/access.log --with-http_addition_module
> --with-http_auth_request_module --with-http_dav_module
> --with-http_flv_module --with-http_gzip_static_module
> --with-http_gunzip_module --with-http_mp4_module
> --with-http_random_index_module --with-http_realip_module
> --with-http_secure_link_module --with-http_slice_module
> --with-http_stub_status_module --with-http_sub_module --with-pcre
> --with-http_v2_module --with-stream=dynamic --with-stream_ssl_module
> --with-stream_ssl_preread_module --with-threads --with-mail=dynamic
> --without-mail_imap_module --without-mail_pop3_module
> --without-mail_smtp_module --with-http_ssl_module
> --with-http_geoip_module=dynamic --add-module=/root/ngx_brotli
>
>
> решил проверить процесс nginx через truss
>
> truss -p PID
>
> Наблюдаю множество записей:
>
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 1.021000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 1.013000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.987000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.980000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.973000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.962000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.933000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.875000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.871000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.805000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 203,EVFILT_READ,EV_CLEAR|EV_EOF,0x0,0x0,0x84ec02be0
> },512,{ 0.711000000 }) = 1 (0x1)
> close(203)					 = 0 (0x0)
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.703000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 15,EVFILT_READ,0x0,0x0,0x1,0x84ec00000 },512,{ 0.687000000
> }) = 1 (0x1)
> accept4(0xf,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 15,EVFILT_READ,0x0,0x0,0x1,0x84ec00000 },512,{ 0.653000000
> }) = 1 (0x1)
> accept4(0xf,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 213,EVFILT_READ,EV_CLEAR,0x0,0x23e,0x84ec02f20 },512,{
> 0.645000000 }) = 1 (0x1)
> read(213,"\^V\^C\^C\^B\^F\^P\0\^B\^B\^B\0{"...,33093) = 574 (0x23e)
> getpid()					 = 76503 (0x12ad7)
> write(213,"\^T\^C\^C\0\^A\^A\^V\^C\^C\0("...,51) = 51 (0x33)
> read(213,0x8049e84c3,33093)			 ERR#35 'Resource temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.632000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 213,EVFILT_READ,EV_CLEAR,0x0,0x278,0x84ec02f20 },512,{
> 0.593000000 }) = 1 (0x1)
> read(213,"\^W\^C\^C\^Bs\0\0\0\0\0\0\0\^A"...,33093) = 632 (0x278)
> read(213,0x8049e84c3,33093)			 ERR#35 'Resource temporarily unavailable'
> openat(AT_FDCWD,"/var/tmp/nginx/cache/1/19/fabbe70058e6eb7798a4535817eef191",O_RDONLY|O_NONBLOCK,00)
> = 93 (0x5d)
> fstat(93,{ mode=-rw------- ,inode=707517,size=98306,blksize=98816 }) = 0
> (0x0)
> pread(0x5d,0x8046f0040,0x10000,0x0)		 = 65536 (0x10000)
> pread(0x5d,0x804827780,0x8000,0x2a8)		 = 32768 (0x8000)
> pread(0x5d,0x804827780,0x8000,0x82a8)		 = 32768 (0x8000)
> pread(0x5d,0x804827780,0x7d5a,0x102a8)		 = 32090 (0x7d5a)
> write(213,"\^W\^C\^C)\^R\M--Yq'\M-e\^O#jW"...,10519) = 10519 (0x2917)
> close(93)					 = 0 (0x0)
> kevent(80,{ 213,EVFILT_WRITE,EV_ADD|EV_ENABLE|EV_CLEAR,0x0,0x0,0x850c02f20
> },1,{ 213,EVFILT_WRITE,EV_CLEAR,0x0,0x1dac5,0x850c02f20 },512,{ 0.535000000
> }) = 1 (0x1)
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.532000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 213,EVFILT_WRITE,EV_CLEAR,0x0,0x20199,0x850c02f20 },512,{
> 0.490000000 }) = 1 (0x1)
> kevent(80,{ },0,{ 213,EVFILT_WRITE,EV_CLEAR,0x0,0x203dc,0x850c02f20 },512,{
> 0.475000000 }) = 1 (0x1)
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.475000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.450000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.407000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.394000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.359000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.330000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.322000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.318000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.258000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 15,EVFILT_READ,0x0,0x0,0x1,0x84ec00000 },512,{ 0.194000000
> }) = 1 (0x1)
> accept4(0xf,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.191000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.140000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.106000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ 16,EVFILT_READ,0x0,0x0,0x1,0x84ec00068 },512,{ 0.080000000
> }) = 1 (0x1)
> accept4(0x10,0x7fffffffe7c0,0x7fffffffe854,0x20000000) ERR#35 'Resource
> temporarily unavailable'
> kevent(80,{ },0,{ },512,{ 0.060000000 })	 = 0 (0x0)
> close(162)					 = 0 (0x0)
>
>
> Это нормальное поведение ? ERR#35 'Resource temporarily unavailable' или
> что-то не так ?
> Сайт открывается отлично, никаких сбоев не наблюдаю. Пытаюсь понять что это
> за ошибки и с чем они могут быть связаны.
>
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,281893,281893#msg-281893
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




Подробная информация о списке рассылки nginx-ru