Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: большой патч в пре дверии 0.7.53
Hello!
On Fri, Apr 24, 2009 at 10:15:30AM +0400, Igor Sysoev wrote:
> On Fri, Apr 24, 2009 at 08:30:18AM +0400, Igor Sysoev wrote:
>
> > On Fri, Apr 24, 2009 at 01:27:08AM +0400, Maxim Dounin wrote:
> >
> > > Hello!
> > >
> > > On Thu, Apr 23, 2009 at 11:14:59PM +0400, Igor Sysoev wrote:
> > >
> > > > Будущее уже сегодня:
> > > > http://sysoev.ru/tmp/patch.0.7.52.prefix
> > > >
> > > > В патче много изменений, связанных с ключём -p prefix и выводом ошибок
> > > > на старте и я хочу протестировать его до релиза.
> > >
> > > Патч чисто не накладывается, ибо у простых смертных нет файла
> > > auto/configure. При указании руками что патчить надо configure -
> > > наложился чисто.
> > >
> > > > *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
> > > > самого начала работы.
> > >
> > > $ ./configure
> > > --prefix="/usr/home/mdounin/work/nginx-generic/debug-nginx-install"
> > > ...
> > >
> > > $ make
> > > ...
> > >
> > > $ objs/nginx -h
> > > nginx version: nginx/0.7.52
> > > ...
> > > -p prefix : set prefix path (default:
> > > /usr/home/mdounin/work/nginx-generic/debug-nginx-install/)
> > > ...
> > >
> > > $ ktrace objs/nginx
> > > [emerg]: could not open error log file: open() "logs/error.log" failed
> > > (2: No such file or directory)
> > >
> > > $ kdump
> > > ...
> > > 36042 nginx NAMI "logs/error.log"
> > > 36042 nginx RET open -1 errno 2 No such file or directory
> > > ...
> > >
> > > Но даже если оно будет работать - IMHO это не очень хорошая идея.
> > > Как минимум test suite оно мне сломает, ибо будет пытаться писать
> > > в дефоултные места - куда у него прав обычно нет. Ну и вообще
> > > имеется шанс сломать много ранее работавших конфигураций.
> > >
> > > При этом насколько я понимаю никакими средствами кроме -p это не
> > > лечится, даже -g не поможет. А через -p всего не сделаешь - путь
> > > относительно префикса и имя файла не поменяешь.
> >
> > Буду смотреть, но не понял, что ты имел в виду под не очень хорошей идей.
Я имел ввиду что вне зависимости от опций сборки должна быть
возможность запустить nginx без каких-либо попыток что-то писать в
какие-либо файлы, пути которых прилетели из сборки.
Сейчас я это делаю через -c и конфиг в котором явно указываются
error_log и pid_file (ну и для http всякого).
Как я это буду делать после вышеозначенного изменения - не
представляю.
>
> Новая версия, в которой исправлен перфикс для на старте:
> http://sysoev.ru/tmp/patch.0.7.52.1.prefix
$ make test
...
2009/04/24 11:48:09 [notice] 42427#0: exit
2009/04/24 11:48:09 [debug] 42427#0: run cleanup: 080EBCB4
2009/04/24 11:48:09 [debug] 42427#0: cleanup resolver
2009/04/24 11:48:09 [debug] 42427#0: free: 080DB000, unused: 0
2009/04/24 11:48:09 [debug] 42427#0: free: 080E4000, unused: 0
2009/04/24 11:48:09 [debug] 42427#0: free: 080EB000, unused: 3767
ngx_http_upstream_keepalive/t/memcached-keepalive....ok
All tests successful.
Files=22, Tests=193, 52 wallclock secs ( 0.73 usr 3.34 sys +
2.30 cusr 8.95 csys = 15.32 CPU)
Result: PASS
В том смысле что работать оно работает, но в stderr пишет - мало
не покажется. :)
А вот без явного указания конфига не запускается:
$ ktrace nginx/objs/nginx
[emerg]: open() "conf/conf/nginx.conf" failed (2: No such file or directory)
$ kdump
...
42443 nginx CALL open(0x80db12b,0,0)
42443 nginx NAMI "conf/conf/nginx.conf"
42443 nginx RET open -1 errno 2 No such file or directory
...
Maxim Dounin
|