ПРОЕКТЫ 


  АРХИВ 


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.5.32 crashed



Одновременно: все подзапросы используют пул основного запроса

Я правильно понимаю, что если в подзапросе (r != r->main) выделить
память ngx_pcalloc(r->pool, ...), то при (r == r->main) эта память будет еще доступна/валидна?

----- Original Message ----- From: "Igor Sysoev" <is@xxxxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
Sent: Thursday, October 18, 2007 2:06 PM
Subject: Re: nginx-0.5.32 crashed


On Thu, Oct 18, 2007 at 02:01:03PM +0400, Denis Erygin wrote:

Есть следующие вопросы по времени жизни ngx_http_request_t: r и r->main

1) Когда вызываетс ngx_destroy_pool для r и когда для r->main?

Одновременно: все подзапросы используют пул основного запроса.

Вот что удалось вытащить последним valgrind-ом:

Invalid read of size 1
at 0x807430F: ngx_http_upstream_process_body (ngx_http_upstream.c:1988)
by 0x80738DB: ngx_http_upstream_send_response (ngx_http_upstream.c:1629)
by 0x8072FD9: ngx_http_upstream_process_header (ngx_http_upstream.c:1247)
by 0x8060A83: ngx_kqueue_process_events (ngx_kqueue_module.c:664)
Address 0x41F6A6C5 is 1873 bytes inside a block of size 4096 free'd
at 0x3C034687: free (in /usr/local/lib/valgrind/vgpreload_memcheck.so)
by 0x804C260: ngx_destroy_pool (ngx_palloc.c:75)
by 0x806A472: ngx_http_request_done (ngx_http_request.c:2490)
by 0x806A2B6: ngx_http_close_request (ngx_http_request.c:2410)

Тут или отправка освобожденных данных после ngx_destroy_pool
или нарушена целостность пула (хотя дампы на ngx_destroy_pool не указывают),
так что скорее первое.






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




 




Copyright © Lexa Software, 1996-2009.