снова про утечку сокетов

Костенко Евгений nobody.mail на gmail.com
Ср Июн 22 00:01:28 MSD 2011


Несколько месяцев назад задавал в этой рассылке вопрос про aio и утечку
сокетов.
Maxim Dounin подсказал копать в сторону gdb и содержания внутренних структур
nginx (http://forum.nginx.org/read.php?21,171856,173232#msg-173232)
В другом обсуждении с участием Игоря нашел как выдрать из coredump'ов нужные
структуры (http://forum.nginx.org/read.php?21,16913,17565#msg-17565)

Собственно на рестарте появилось куча "корок" и жалоб в глобальном error.log
на "open socket #N left in connection M"
Запускаем gdb и смотрим что внутри

(gdb) qq 34
$18 = {len = 43, data = 0x801d2fb5c "/bla/bla/archive1.zip"}
$19 = {len = 46, data = 0x8099ac400 "GET /a52babab9bb8355b156358f434627bb0
HTTP/1.1\r\nAccept"}
discard_body    0
lingering_close 0
lingering_time  0
keepalive       1
$20 = 0x46d7a7 <ngx_http_upstream_rd_check_broken_connection>
$21 = 0x470f3b <ngx_http_upstream_process_downstream>
$22 = 0x4b79fa "reading upstream"
status  200
count   1
blocked 0
sent    33580
length  -1
Cannot access memory at address 0x0

(gdb) qq 35
$23 = {len = 26, data = 0x801d33c64 "/bla/bla/archive2.zip"}
$24 = {len = 46, data = 0x801852400 "GET /1d5859a513539b9b412d534212728832
HTTP/1.1\r\nUser-Agent"}
discard_body    0
lingering_close 0
lingering_time  0
keepalive       1
$25 = 0x459b5b <ngx_http_test_reading>
$26 = 0x4596ac <ngx_http_writer>
$27 = 0x0
status  206
count   1
blocked 0
sent    242367
length  -1
Cannot access memory at address 0x0

Смена версии ОС с 8.0 на 8.1/8.2, как собссно и обновление nginx с 0.8.x до
1.0.x не дает результата
За сутки количество writing соединений зашкаливает на 20-30тыс, хотя сутя по
netstat таковых не более тысячи

Подскажите пожалуйста, куда дальше копать и что смотреть?

PS: про ОС и версию nginx

# uname -a
FreeBSD server.domain.org 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17
02:41:51 UTC 2011     root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
 amd64

# nginx -V
nginx: nginx version: nginx/1.0.4
nginx: TLS SNI support enabled
nginx: 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
--with-debug --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_geoip_module
--with-http_gzip_static_module --with-http_perl_module
--with-http_realip_module --with-http_ssl_module
--with-http_stub_status_module --with-pcre

-- 
С Уважением,
Костенко Евгений

моб: +7(928)2961142
icq: 101241013
jabber: nobody.mail at gmail.com
skype: nobody.ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110622/f00b8f43/attachment-0001.html>


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