Re: Мистика... (Редиректы, имена и CRLF)
Maxim Dounin
mdounin на mdounin.ru
Вт Сен 7 14:17:33 MSD 2010
Hello!
On Tue, Sep 07, 2010 at 02:58:38AM +0400, Andrey Repin wrote:
> Здравствуйте, Уважаемый(-ая, -ое) Maxim Dounin!
>
> >> MD> Какая версия nginx'а и как называется папка? E.g. с русскими
> >> MD> именами папок точно проблемы, у меня ругается как-то так:
> >>
> >> Латиница, больше того - даже пробелов нет.
> >> Нет, при запуске не ругается, только во время работы молча падает чилд.
> >> Вернее, даже не работает.
> >>
> >> MD> 2010/09/06 23:13:30 [emerg] 4020#3308: CreateFile() "C:\Documents and Settings\mdounin\Мои документы\long-long-long-long-long-very-long-name\nginx-0.8.50/conf/nginx.conf" failed (1113: Символ
> >> MD> Юникода не имеет сопоставления в конечной многобайтовой кодовой странице)
> >>
> >> MD> Сделать debug log тоже было бы полезно. Смотреть тут:
> >>
> >> MD> http://nginx.org/en/docs/debugging_log.html
> >>
> >> Сделал, приаттачил.
>
> MD> Судя по всему на уровне http описан ещё один error_log, без
> MD> дебага.
>
> Откуда тогда в логе [debug] строчки?
От глобальных событий, в которых про http [ещё] ничего не
известно.
> MD> Цитирую написанное по ссылке: "You should either comment
> MD> out this server log or add the ⌠debug■ flag too".
>
> Я читал это...
>
> MD> Вообще рекомендую показать полный конфиг.
>
> Показываю.
Странно, вроде бы логгирование включено правильно. Но лог
обравается как раз в тот момент, когда начинает применяться
логгирование из контекста http.
2010/09/07 00:45:42 [debug] 30520#30184: *1 accept: 127.0.0.1 fd:292^M
2010/09/07 00:45:42 [debug] 30520#30184: *1 event timer add: 292: 60000:3905748266^M
2010/09/07 00:45:42 [debug] 30520#30184: *1 select add event fd:292 ev:0^M
2010/09/07 00:45:42 [debug] 30520#30184: posted event 00000000^M
2010/09/07 00:45:42 [debug] 30520#30184: posted events 00000000^M
2010/09/07 00:45:42 [debug] 30520#30184: worker cycle^M
2010/09/07 00:45:42 [debug] 30520#30184: select event: fd:240 wr:0^M
2010/09/07 00:45:42 [debug] 30520#30184: select event: fd:292 wr:0^M
2010/09/07 00:45:42 [debug] 30520#30184: select timer: 500^M
2010/09/07 00:45:42 [debug] 30520#30184: select ready 1^M
2010/09/07 00:45:42 [debug] 30520#30184: select read 292^M
2010/09/07 00:45:42 [debug] 30520#30184: *1 post event 00A46020^M
2010/09/07 00:45:42 [debug] 30520#30184: timer delta: 16^M
2010/09/07 00:45:42 [debug] 30520#30184: posted events 00A46020^M
2010/09/07 00:45:42 [debug] 30520#30184: posted event 00A46020^M
2010/09/07 00:45:42 [debug] 30520#30184: *1 delete posted event 00A46020^M
2010/09/07 00:45:42 [debug] 30520#30184: *1 malloc: 00A155D8:720^M
2010/09/07 00:45:42 [debug] 29396#29724: master WaitForMultipleObjects: 4^M
2010/09/07 00:45:42 [debug] 29396#29724: reap worker^M
2010/09/07 00:45:42 [notice] 29396#29724: worker process 30520 exited with code C0000005^M
Последний malloc(720) в рабочем процессе - это
r = ngx_pcalloc(c->pool, sizeof(ngx_http_request_t));
из ngx_http_init_request(). Следом должны идти malloc(1024) и
malloc(4096), для client_header_buffer_size и request_pool_size.
Они логгируются уже в контексте http, после применения http
конфигов. Видимо падает как раз в промежутке, где-то в процессе
применения конфигов.
У меня проблема не воспроизводится, в том числе с приложенным
конфигом и воссозданными по debug log'у путями.
В любом случае - отладить это без полных исходников не
представляется возможным, так что ждём Игоря.
До его прихода можно ещё попробовать:
1. Проверить, всё ли в порядке с железом, e.g. прогнать банальный
memtest86+.
2. Попробовать явно задавать -p при старте.
3. Попробовать задать все пути в конфиге полностью.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru