nginx-0.8.34
Maxim Dounin
mdounin на mdounin.ru
Чт Мар 4 03:43:09 MSK 2010
Hello!
On Wed, Mar 03, 2010 at 11:04:17PM +0300, Igor Sysoev wrote:
> On Wed, Mar 03, 2010 at 10:58:19PM +0300, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Wed, Mar 03, 2010 at 10:48:10PM +0300, Igor Sysoev wrote:
> >
> > > On Wed, Mar 03, 2010 at 10:46:05PM +0300, Igor Sysoev wrote:
> > >
> > > > On Wed, Mar 03, 2010 at 09:36:56PM +0300, Vladimir Sopot wrote:
> > > >
> > > > > Приветствую!
> > > > >
> > > > > А для проблемки c memcached (http://www.lexa.ru/nginx-ru/msg32094.html) снова надо будет накатывать патч?
> > > >
> > > > Пока да. Мне нужно
> > > > 1) воспроизвести ошибку на 0.6.14
> > >
> > > Вернее, воспроизвести ту ошибку на 0.6.13, которая была пофикшена в 0.6.14.
> >
> > Вроде ж я ещё тогда тест нарисовал и вроде даже ссылку на него
> > давал, нет?
> >
> > http://mdounin.ru/hg/nginx-tests/rev/25047dc6ae9b
> >
> > Или ты обязательно хочешь с бесконечным циклом во writer'е?
>
> Да, мне нужно убедиться, что твой патч фиксит обе баги.
Ну я вроде бы объяснил - это одна и та же бага, только результаты
на выходе разные. Бесконечный цикл возникает когда на выход
отправляется буфер отрицательного размера. А до кода чтения
остатков trailer'а там вообще дело не доходит, он в 0.6.13 был
правильный (почти - выход всё-таки лучше делать).
Но если очень хочется - почему нет? Только в test suite я это
включать не буду, он у меня глупый и SIGKILL'ом убежавшие
процессы бить не умеет. :)
Тест прилагается.
На 0.6.13 даёт цикл:
2010/03/04 03:27:14 [debug] 45924#0: *1 memcached filter bytes:2006 size:4016 length:2015 rest:7
2010/03/04 03:27:14 [error] 45924#0: *1 memcached sent invalid trailer while reading upstream, client: 127.0.0.1, server: loc
alhost, URL: "/", upstream: "memcached://127.0.0.1:8081", host: "localhost"
2010/03/04 03:27:14 [debug] 45924#0: *1 http output filter "/?"
2010/03/04 03:27:14 [debug] 45924#0: *1 copy filter: "/?"
2010/03/04 03:27:14 [debug] 45924#0: *1 http postpone filter "/?" 080F19C8
2010/03/04 03:27:14 [debug] 45924#0: *1 http postpone filter out "/?"
2010/03/04 03:27:14 [debug] 45924#0: *1 write old buf t:0 f:0 00000000, pos 080F6400, size: 986 file: 0, size: 0
2010/03/04 03:27:14 [debug] 45924#0: *1 write new buf t:0 f:0 00000000, pos 080F67DA, size: -2 file: 0, size: 0
...
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 984 of 984
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
2010/03/04 03:27:14 [debug] 45924#0: *1 writev: 0 of 0
...
На 0.8.34 без патча - цикла нет, но есть ругань на invalid trailer
при его дочитывании:
...
2010/03/04 03:31:22 [debug] 45970#0: *1 recv: eof:0, avail:4, err:0
2010/03/04 03:31:22 [debug] 45970#0: *1 recv: fd:8 4 of 7
2010/03/04 03:31:22 [error] 45970#0: *1 memcached sent invalid trailer while reading upstream, client: 127.0.0.1, server: loc
alhost, request: "GET / HTTP/1.0", upstream: "memcached://127.0.0.1:8081", host: "localhost"
...
На 0.8.34 с патчем - ни циклов, ни ругани.
Maxim Dounin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: memcached-fake-big.t
Type: application/x-troff
Size: 1942 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100304/f073856c/attachment.t>
Подробная информация о списке рассылки nginx-ru