nginx-0.6.23

Denis F. Latypoff denis at gostats.ru
Thu Dec 27 20:54:45 MSK 2007


Hello Denis,

Thursday, December 27, 2007, 11:32:59 PM, you wrote:

> Hello Igor,

> Thursday, December 27, 2007, 9:37:28 PM, you wrote:

>> Изменения в nginx 0.6.23                                          27.12.2007

>>     *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот 
>>        параметр используется по умолчанию.

>>     *) Исправление: оптимизация использования 16K буфера для 
>>        SSL-соединения.
>>        Спасибо Ben Maurer.

>>     *) Исправление: при использовании HTTPS запросы могли завершаться с 
>>        ошибкой "bad write retry"; ошибка появилась в 0.5.13.


> обновился до сабжа, регулярно получаю корки:

> #0  0x080665c9 in ngx_ssl_free_buffer (c=0xb7e119f0)
>     at src/event/ngx_event_openssl.c:999
> 999         if (ngx_pfree(c->pool, c->ssl->buf->start) == NGX_OK) {
> (gdb) bt
> #0  0x080665c9 in ngx_ssl_free_buffer (c=0xb7e119f0)
>     at src/event/ngx_event_openssl.c:999
> #1  0x080711ed in ngx_http_set_keepalive (r=0x83c6b60)
>     at src/http/ngx_http_request.c:2121
> #2  0x080705c0 in ngx_http_finalize_request (r=0x83c6b60, rc=0)
>     at src/http/ngx_http_request.c:1743
> #3  0x08069af6 in ngx_http_core_content_phase (r=0x83c6b60, ph=0x835d9b8)
>     at src/http/ngx_http_core_module.c:995
> #4  0x080694b1 in ngx_http_core_run_phases (r=0x83c6b60)
>     at src/http/ngx_http_core_module.c:707
> #5  0x08069477 in ngx_http_handler (r=0x83c6b60)
>     at src/http/ngx_http_core_module.c:690
> #6  0x0806ff1c in ngx_http_process_request (r=0x83c6b60)
>     at src/http/ngx_http_request.c:1460
> #7  0x0806f29f in ngx_http_process_request_headers (rev=0x83c794c)
>     at src/http/ngx_http_request.c:942
> #8  0x0806ee52 in ngx_http_process_request_line (rev=0xb7da67b0)
>     at src/http/ngx_http_request.c:750
> #9  0x08064990 in ngx_epoll_process_events (cycle=0x80b9c58, timer=500, flags=Variable "flags" is not available.
> )
>     at src/event/modules/ngx_epoll_module.c:521
> #10 0x0805ba06 in ngx_process_events_and_timers (cycle=0x80b9c58)
>     at src/event/ngx_event.c:245
> #11 0x0806299f in ngx_worker_process_cycle (cycle=0x80b9c58, data=0x0)
>     at src/os/unix/ngx_process_cycle.c:767
> #12 0x08060d51 in ngx_spawn_process (cycle=0x80b9c58,
>     proc=0x80628dc <ngx_worker_process_cycle>, data=0x0,
>     name=0x809745f "worker process", respawn=1)
>     at src/os/unix/ngx_process.c:187
> #13 0x08062646 in ngx_reap_children (cycle=0x80b9c58)
>     at src/os/unix/ngx_process_cycle.c:569
> #14 0x08061ccf in ngx_master_process_cycle (cycle=0x80b9c58)
>     at src/os/unix/ngx_process_cycle.c:162
> #15 0x0804b682 in main (argc=1, argv=0xbffb6ae4) at src/core/nginx.c:355


> дебаг лог в аттаче.


еще

(gdb) p c
$5 = (ngx_connection_t *) 0xb7e199e8
(gdb) p c->pool->large
$6 = (ngx_pool_large_t *) 0x837c97c
(gdb) p c->pool->large->alloc
$7 = (void *) 0x0
(gdb) p c->ssl->buf->start
$8 = (u_char *) 0x0

и как раз условие выполняется:

ngx_int_t
ngx_pfree(ngx_pool_t *pool, void *p)
{
    ngx_pool_large_t  *l;

    for (l = pool->large; l; l = l->next) {
        /*
         * Вот здесь
         */
        if (p == l->alloc) {
            ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0,
                           "free: %p", l->alloc);
            ngx_free(l->alloc);
            l->alloc = NULL;

            return NGX_OK;
        }
    }

    return NGX_DECLINED;
}


-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx-ru mailing list