ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx-0.8.21



On Wed, Oct 28, 2009 at 02:14:20AM +0300, proforg wrote:

> 2009/10/27 Igor Sysoev <is@xxxxxxxxxxxxx>:
> >
> > upload модули используются ?
> Нет, не используется. Собрал версию без них, с минимальным набором
> модулей. Ситуация таже.
> 
> nginx version: nginx/0.8.21
> built by gcc 4.3.2 (Debian 4.3.2-1.1)
> configure arguments: --conf-path=/etc/nginx/nginx.conf
> --error-log-path=/var/log/nginx/error.log
> --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock
> --http-log-path=/var/log/nginx/access.log
> --http-client-body-temp-path=/var/lib/nginx/body
> --http-proxy-temp-path=/var/lib/nginx/proxy
> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug
> --with-file-aio --with-http_stub_status_module
> --with-http_addition_module --with-http_flv_module
> --with-http_realip_module
> 
> >
> >>  ~>uname -a
> >> Linux hunterscash.com 2.6.26-2-amd64 #1 SMP Wed Aug 19 22:33:18 UTC
> >> 2009 x86_64 GNU/Linux
> >
> > Нужно включить в nginx.conf:
> > debug_points  abort;
> > тогда на выходе вокеров будут корки при текущих соединениях.
> 
> Получил несколько странных корок. Что с ними делать ?

Создаём в текущем каталоге .gdbinit:

define qq
   set $c=ngx_cycle->connections[$arg0]
   set $r=((ngx_http_request_t *) $c->data)

   print $r->uri
   print $r->request_line
   printf "discard_body\t%d\n", $r->discard_body
   printf "lingering_close\t%d\n", $r->lingering_close
   printf "lingering_time\t%d\n", $r->lingering_time
   printf "keepalive\t%d\n", $r->keepalive
   print $r->read_event_handler
   print $r->write_event_handler
   print $c->log->action
   #printf "errno\t%d\n", $c->read->kq_errno
   #printf "eof\t%d\n", $c->read->pending_eof
   printf "status\t%d\n", $r->headers_out.status
   printf "count\t%d\n", $r->main->count
   printf "blocked\t%d\n", $r->main->blocked
   printf "sent\t%d\n", $c->sent
   printf "length\t%d\n", $r->headers_in.content_length_n
   print *$r->headers_in.content_length
   print *$r->request_body
end

Ищем в логе alert'ы вида "1111#0 open socket #3333 left in connection 2222",
запускаем gdb на нужную корку:

gdb /path/to/nginx /path/to/core.1111
qq 2222


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.