ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] [git update] packages/nginx: heads/master
  @ 2007-08-30 21:24 ` Dmitry V. Levin
  2007-08-30 22:27   ` Konstantin A. Lepikhov
  2007-08-31 14:11   ` Michael Shigorin
  0 siblings, 2 replies; 13+ messages in thread
From: Dmitry V. Levin @ 2007-08-30 21:24 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2289 bytes --]

On Fri, Aug 31, 2007 at 01:15:18AM +0400, Denis Smirnov wrote:
> Update of /people/mithraen/packages/nginx.git
[...]
> Full diff since `nginx/0.5.31-alt2' follows:
> diff --git a/nginx.init b/nginx.init
> index 342181a..290bf4e 100755
> --- a/nginx.init
> +++ b/nginx.init
> @@ -13,6 +13,8 @@ WITHOUT_RC_COMPAT=1
>  
>  LOCKFILE=/var/lock/nginx/nginx
>  PIDFILE=/var/run/nginx.pid
> +OLDBINPID=/var/run/nginx.pid.oldbin
> +BINARY=/usr/sbin/nginx

Зачем это??
>  RETVAL=0
>  
>  start()
> @@ -26,7 +28,7 @@ start()
>  
>  stop()
>  {
> -	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- /usr/sbin/nginx
> +	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- $BINARY

Не нужен никакой $BINARY, выкиньте --name nginx и напишите по-человечески.
Может хотя бы /etc/init.d/template посмотрите?

>  upgrade()
>  {
> -    check
> -    RETVAL=$?
> -    if [ $RETVAL -eq 0 ]; then
> -    	echo -n $"Upgrading nginx: "
> -    	kill -USR2 `cat $PIDFILE`
> +	conftest
>  	RETVAL=$?
> +	echo -n "Upgrading nginx: "
> +	if [ $RETVAL -eq 0 ]; then
> +		# TODO: use start-stop-daemon?
> +		[ -s "$PIDFILE" ] && kill -USR2 `cat "$PIDFILE"`
> +		RETVAL=$?
> +		# let the signal through; the system might be fairly busy,
> +		# so if we don't see the oldpidfile immediately, wait 5 sec
> +		[ -s "$OLDBINPID" ] || sleep 5
> +		[ -s "$OLDBINPID" ] && kill -TERM `cat "$OLDBINPID"`
> +		success
> +	else 
> +		failure
> +		RETVAL=1
> +	fi

Какому пользователю принадлежит файл $PIDFILE?
Делать
kill -USR2 `cat "$PIDFILE"`
не глядя нельзя, если слово "безопасность" для вас не пустой звук.

>  	condrestart)
> -		[ -e "$LOCKFILE" ] && upgrade ||: 
> +		# package upgrade should invoke upgrade();
> +		# sysadmin doing condrestart by hand
> +		# should invoke restart() if nginx's running.
> +		# see also manual/triggers in rpm docs
> +		# and /usr/sbin/post_service
> +		if ! [ "$RPM_INSTALL_ARG1" -ge 0 ] 2>/dev/null; then
> +			if [ -e "$LOCKFILE" ]; then
> +				restart
> +			fi
> +			exit 0
> +		fi
> +		if [ "$RPM_INSTALL_ARG1" -gt 1 ]; then
> +			upgrade
> +		fi

А почему при обновлении пакета нельзя выполнить обычный condrestart?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-30 21:24 ` [devel] [git update] packages/nginx: heads/master Dmitry V. Levin
@ 2007-08-30 22:27   ` Konstantin A. Lepikhov
  2007-08-31  0:09     ` Dmitry V. Levin
  2007-08-31 14:11   ` Michael Shigorin
  1 sibling, 1 reply; 13+ messages in thread
From: Konstantin A. Lepikhov @ 2007-08-30 22:27 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 459 bytes --]

Hi Dmitry!

Friday 31, at 01:24:22 AM you wrote:

...
> Зачем это??
...
> 
> А почему при обновлении пакета нельзя выполнить обычный condrestart?
Это, видимо, пытались повторить рекомендации Сысоева по обновлению nginx "на
лету", т.е. без закрытия соединений - http://sysoev.ru/nginx/docs/control.html

Я тогда сделал upgrade как раз с полуручным управлением, поскольку логика
с откатом конфигурации требует участия человека.

-- 
WBR et al.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-30 22:27   ` Konstantin A. Lepikhov
@ 2007-08-31  0:09     ` Dmitry V. Levin
  2007-08-31  0:32       ` Michael Shigorin
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2007-08-31  0:09 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 540 bytes --]

On Fri, Aug 31, 2007 at 02:27:55AM +0400, Konstantin A. Lepikhov wrote:
> Friday 31, at 01:24:22 AM you wrote:
> 
> ...
> > Зачем это??
> ...
> > 
> > А почему при обновлении пакета нельзя выполнить обычный condrestart?
> Это, видимо, пытались повторить рекомендации Сысоева по обновлению nginx "на
> лету", т.е. без закрытия соединений - http://sysoev.ru/nginx/docs/control.html

Может сперва сделать, чтобы этот nginx просто нормально работал не хуже
apache1, а потом уже будем заниматься усовершенствованиями?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31  0:09     ` Dmitry V. Levin
@ 2007-08-31  0:32       ` Michael Shigorin
  2007-08-31  0:40         ` Dmitry V. Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-08-31  0:32 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 981 bytes --]

On Fri, Aug 31, 2007 at 04:09:51AM +0400, Dmitry V. Levin wrote:
> > > А почему при обновлении пакета нельзя выполнить обычный
> > > condrestart?
> > Это, видимо, пытались повторить рекомендации Сысоева по
> > обновлению nginx "на лету", т.е. без закрытия соединений -
> > http://sysoev.ru/nginx/docs/control.html
> Может сперва сделать, чтобы этот nginx просто нормально работал
> не хуже apache1, а потом уже будем заниматься
> усовершенствованиями?

Я было так и подумал, но он вдруг починился. :)

Насчёт твоих сомнений по патчу для nginx.init::stop() --
постараюсь проверить, но фактически у меня именно так и 
заработало (проверялось на хостовом /etc/init.d/nginx,
в сборку переносились только более-менее проверенные
изменения, с которыми проблемы вылазили уже при дальнейшей
проверке).

PS: никогда бы не подумал, что Сысоев(!) не осилил autotools...

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31  0:32       ` Michael Shigorin
@ 2007-08-31  0:40         ` Dmitry V. Levin
  2007-08-31  0:47           ` Michael Shigorin
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2007-08-31  0:40 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 707 bytes --]

On Fri, Aug 31, 2007 at 03:32:55AM +0300, Michael Shigorin wrote:
> On Fri, Aug 31, 2007 at 04:09:51AM +0400, Dmitry V. Levin wrote:
> > > > А почему при обновлении пакета нельзя выполнить обычный
> > > > condrestart?
> > > Это, видимо, пытались повторить рекомендации Сысоева по
> > > обновлению nginx "на лету", т.е. без закрытия соединений -
> > > http://sysoev.ru/nginx/docs/control.html
> > Может сперва сделать, чтобы этот nginx просто нормально работал
> > не хуже apache1, а потом уже будем заниматься
> > усовершенствованиями?
> 
> Я было так и подумал, но он вдруг починился. :)

В принципе описанную схему реализовать несложно, если есть работающий
proof-of-concept.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31  0:40         ` Dmitry V. Levin
@ 2007-08-31  0:47           ` Michael Shigorin
  2007-08-31  1:10             ` Dmitry V. Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-08-31  0:47 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 758 bytes --]

On Fri, Aug 31, 2007 at 04:40:21AM +0400, Dmitry V. Levin wrote:
> > > > > А почему при обновлении пакета нельзя выполнить обычный
> > > > > condrestart?
> > > > Это, видимо, пытались повторить рекомендации Сысоева по
> > > > обновлению nginx "на лету", т.е. без закрытия соединений
> > > > - http://sysoev.ru/nginx/docs/control.html
> > > Может сперва сделать, чтобы этот nginx просто нормально
> > > работал не хуже apache1, а потом уже будем заниматься
> > > усовершенствованиями?
> > Я было так и подумал, но он вдруг починился. :)
> В принципе описанную схему реализовать несложно, если есть
> работающий proof-of-concept.

Какую/какой?

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31  0:47           ` Michael Shigorin
@ 2007-08-31  1:10             ` Dmitry V. Levin
  2007-08-31 14:02               ` Michael Shigorin
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2007-08-31  1:10 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 877 bytes --]

On Fri, Aug 31, 2007 at 03:47:22AM +0300, Michael Shigorin wrote:
> On Fri, Aug 31, 2007 at 04:40:21AM +0400, Dmitry V. Levin wrote:
> > > > > > А почему при обновлении пакета нельзя выполнить обычный
> > > > > > condrestart?
> > > > > Это, видимо, пытались повторить рекомендации Сысоева по
> > > > > обновлению nginx "на лету", т.е. без закрытия соединений
> > > > > - http://sysoev.ru/nginx/docs/control.html
> > > > Может сперва сделать, чтобы этот nginx просто нормально
> > > > работал не хуже apache1, а потом уже будем заниматься
> > > > усовершенствованиями?
> > > Я было так и подумал, но он вдруг починился. :)
> > В принципе описанную схему реализовать несложно, если есть
> > работающий proof-of-concept.
> 
> Какую/какой?

Схему, описанную у Сысоева, можно реализовать корректно,
если есть ещё кривая но уже работающая реализация.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31  1:10             ` Dmitry V. Levin
@ 2007-08-31 14:02               ` Michael Shigorin
  2007-08-31 21:43                 ` Dmitry V. Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-08-31 14:02 UTC (permalink / raw)
  To: ALT Devel discussion list

On Fri, Aug 31, 2007 at 05:10:53AM +0400, Dmitry V. Levin wrote:
> > > > > Может сперва сделать, чтобы этот nginx просто нормально
> > > > > работал не хуже apache1, а потом уже будем заниматься
> > > > > усовершенствованиями?
> > > > Я было так и подумал, но он вдруг починился. :)
> > > В принципе описанную схему реализовать несложно, если есть
> > > работающий proof-of-concept.
> > Какую/какой?
> Схему, описанную у Сысоева, можно реализовать корректно,
> если есть ещё кривая но уже работающая реализация.

Так покатит?

http://git.altlinux.org/people/mike/packages/nginx.git?p=nginx.git;a=shortlog;h=mike/init-secure-fixup

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-30 21:24 ` [devel] [git update] packages/nginx: heads/master Dmitry V. Levin
  2007-08-30 22:27   ` Konstantin A. Lepikhov
@ 2007-08-31 14:11   ` Michael Shigorin
  2007-08-31 15:19     ` Денис Смирнов
  1 sibling, 1 reply; 13+ messages in thread
From: Michael Shigorin @ 2007-08-31 14:11 UTC (permalink / raw)
  To: ALT Devel discussion list

On Fri, Aug 31, 2007 at 01:24:22AM +0400, Dmitry V. Levin wrote:
> > +OLDBINPID=/var/run/nginx.pid.oldbin
> > +BINARY=/usr/sbin/nginx
> Зачем это??

Постфактум: Костик объяснил правильно; и оно почти работало.
Собственно, эти костыли были этапом экспериментов -- то, куда
оно пришло сегодня, вчера в общих чертах и представлялось.

> > -	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- /usr/sbin/nginx
> > +	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- $BINARY
> Не нужен никакой $BINARY, выкиньте --name nginx и напишите по-человечески.
> Может хотя бы /etc/init.d/template посмотрите?

Дим, смотрел и не раз.

Здесь проблема была не в починке методом s,nginx,/usr/sbin/nginx,
а в применении --name nginx с самого начала.

Где бы правильное применение задокументировать -- в template?
Каждый раз читать /etc/init.d/functions не очень интересно.

> Какому пользователю принадлежит файл $PIDFILE?

root:root

> Делать kill -USR2 `cat "$PIDFILE"` не глядя нельзя, если слово
> "безопасность" для вас не пустой звук.

А то.  Более подробный анализ -- здесь:
https://bugzilla.altlinux.org/show_bug.cgi?id=12655#c9

> >  	condrestart)
> > -		[ -e "$LOCKFILE" ] && upgrade ||: 
> > +		# package upgrade should invoke upgrade();
> > +		# sysadmin doing condrestart by hand
> > +		# should invoke restart() if nginx's running.
> > +		# see also manual/triggers in rpm docs
> > +		# and /usr/sbin/post_service
> > +		if ! [ "$RPM_INSTALL_ARG1" -ge 0 ] 2>/dev/null; then
> > +			if [ -e "$LOCKFILE" ]; then
> > +				restart
> > +			fi
> > +			exit 0
> > +		fi
> > +		if [ "$RPM_INSTALL_ARG1" -gt 1 ]; then
> > +			upgrade
> > +		fi
> А почему при обновлении пакета нельзя выполнить обычный condrestart?

Поскольку можно круто выпендриться и выполнить необычный =)
Со времён nginx-0.1.x так хотел, но только теперь добрался.

УМВР и потому в git.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31 14:11   ` Michael Shigorin
@ 2007-08-31 15:19     ` Денис Смирнов
  2007-08-31 15:56       ` [devel] [git update] [JT] " Alexey I. Froloff
  0 siblings, 1 reply; 13+ messages in thread
From: Денис Смирнов @ 2007-08-31 15:19 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 702 bytes --]

On Fri, Aug 31, 2007 at 05:11:58PM +0300, Michael Shigorin wrote:

>> А почему при обновлении пакета нельзя выполнить обычный condrestart?
MS> Поскольку можно круто выпендриться и выполнить необычный =)
MS> Со времён nginx-0.1.x так хотел, но только теперь добрался.
MS> УМВР и потому в git.

Поясняю -- nginx умеет "плавное" обновление -- то есть новые соединения
будут обслуживаться новыми дочками, а старые -- старыми. Таким образом
можно делать обновление на живой системе без остановки сервиса.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
Хочешь стать бесконечно значительным, раздели себя на ноль.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] [JT] packages/nginx: heads/master
  2007-08-31 15:19     ` Денис Смирнов
@ 2007-08-31 15:56       ` Alexey I. Froloff
  2007-09-01 13:09         ` Денис Смирнов
  0 siblings, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2007-08-31 15:56 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 477 bytes --]

* Денис Смирнов <mithraen@> [070831 19:19]:
> Поясняю -- nginx умеет "плавное" обновление -- то есть новые соединения
> будут обслуживаться новыми дочками, а старые -- старыми. Таким образом
> можно делать обновление на живой системе без остановки сервиса.
Подумаешь?  irssi тоже так умеет.

-- 
Regards, Alexey I. Froloff
AIF5-RIPN, AIF5-RIPE
-------------------------------------------
  Inform-Mobil, Ltd. System Administrator
       http://www.inform-mobil.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] packages/nginx: heads/master
  2007-08-31 14:02               ` Michael Shigorin
@ 2007-08-31 21:43                 ` Dmitry V. Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Dmitry V. Levin @ 2007-08-31 21:43 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 844 bytes --]

On Fri, Aug 31, 2007 at 05:02:27PM +0300, Michael Shigorin wrote:
> On Fri, Aug 31, 2007 at 05:10:53AM +0400, Dmitry V. Levin wrote:
> > > > > > Может сперва сделать, чтобы этот nginx просто нормально
> > > > > > работал не хуже apache1, а потом уже будем заниматься
> > > > > > усовершенствованиями?
> > > > > Я было так и подумал, но он вдруг починился. :)
> > > > В принципе описанную схему реализовать несложно, если есть
> > > > работающий proof-of-concept.
> > > Какую/какой?
> > Схему, описанную у Сысоева, можно реализовать корректно,
> > если есть ещё кривая но уже работающая реализация.
> 
> Так покатит?
> 
> http://git.altlinux.org/people/mike/packages/nginx.git?p=nginx.git;a=shortlog;h=mike/init-secure-fixup

Спасибо,
в -alt4 настолько же лучше чем в -alt3, насколько
в -alt3 лучше чем в -alt1.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] [git update] [JT] packages/nginx: heads/master
  2007-08-31 15:56       ` [devel] [git update] [JT] " Alexey I. Froloff
@ 2007-09-01 13:09         ` Денис Смирнов
  0 siblings, 0 replies; 13+ messages in thread
From: Денис Смирнов @ 2007-09-01 13:09 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 565 bytes --]

On Fri, Aug 31, 2007 at 07:56:54PM +0400, Alexey I. Froloff wrote:

>> Поясняю -- nginx умеет "плавное" обновление -- то есть новые соединения
>> будут обслуживаться новыми дочками, а старые -- старыми. Таким образом
>> можно делать обновление на живой системе без остановки сервиса.
AIF> Подумаешь?  irssi тоже так умеет.

Я к тому, что это требует отдельных плясок вокруг initscript'а.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
Плохомy пpогpаммеpy дpайвеpы мешают!

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2007-09-01 13:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-30 21:24 ` [devel] [git update] packages/nginx: heads/master Dmitry V. Levin
2007-08-30 22:27   ` Konstantin A. Lepikhov
2007-08-31  0:09     ` Dmitry V. Levin
2007-08-31  0:32       ` Michael Shigorin
2007-08-31  0:40         ` Dmitry V. Levin
2007-08-31  0:47           ` Michael Shigorin
2007-08-31  1:10             ` Dmitry V. Levin
2007-08-31 14:02               ` Michael Shigorin
2007-08-31 21:43                 ` Dmitry V. Levin
2007-08-31 14:11   ` Michael Shigorin
2007-08-31 15:19     ` Денис Смирнов
2007-08-31 15:56       ` [devel] [git update] [JT] " Alexey I. Froloff
2007-09-01 13:09         ` Денис Смирнов

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git