nginx-0.5.32 crashed

Igor Sysoev is at rambler-co.ru
Thu Oct 18 17:15:11 MSD 2007


On Thu, Oct 18, 2007 at 03:54:53PM +0400, Denis Erygin wrote:

> Это вот к чему:
> 
> ngx_event_pipe(p, ev->write) => декларируется
> как ngx_int_t ngx_event_pipe (ngx_event_pipe_t *p, int do_write)
> 
> #0  0x08059f8e in ngx_event_pipe (p=0x8316714, do_write=-791621424) at 
> src/event/ngx_event_pipe.c:43
> 
> При входе в функцию
> ( do_write = ev->write ) < 0
> 
> src/event/ngx_event_pipe.c:31
> . . .
> for ( ;; ) {
>        if (do_write) {  - вот тут как-то нехорошо выглядит для do_write < 0
> . . .
>   do_write = 1;
> }
> . . .
> 
> Так задумано?

Выглядит странно, по идее, там должен быть или 0, или 1.

> ----- Original Message ----- 
> From: "Igor Sysoev" <is at rambler-co.ru>
> To: <nginx-ru at sysoev.ru>
> Sent: Thursday, October 18, 2007 3:20 PM
> Subject: Re: nginx-0.5.32 crashed
> 
> 
> On Thu, Oct 18, 2007 at 03:08:51PM +0400, Denis Erygin wrote:
> 
> >src/http/ngx_http_upstream.c: [1890, 1898]:
> >. . .
> >if (ngx_event_pipe(p, ev->write) == NGX_ABORT)
> >{
> >  if (downstream->destroyed) {
> >     return;
> >  }
> >
> >  ngx_http_upstream_finalize_request(r, u, 0);
> >  return;
> >}
> >. . .
> >
> >Нормально ли, когда ev->write < 0 ?
> >например ev->write = -791621424
> 
> Вообще-то, ev->write - это один бит:
> 
> struct ngx_event_s {
>    void            *data;
> 
>    unsigned         write:1;
>    ...
> 
> 
> -- 
> Игорь Сысоев
> http://sysoev.ru
> 
> 

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





More information about the nginx-ru mailing list