Bug 3153 - after rotating logs apache continues logging to deleted file, but not in newly created one
: after rotating logs apache continues logging to deleted file, but not in newl...
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/apache)
: unstable
: all Linux
: P2 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2003-10-13 13:49 by
Modified: 2006-02-17 16:25 (History)


Attachments
fixed initscript (3.16 KB, text/plain)
2003-10-13 18:03, Michael Shigorin
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2003-10-13 13:49:52
after rotating log files apache continues logging to deleted file, but not in
newly created one

Steps to Reproduce:
1. tail -f /var/log/httpd/access_log
2. logrotate -f /etc/logrotate.d/apache
3. HEAD localhost
3. ls -l /var/log/httpd/access_log
Actual Results:  
in tail window:
127.0.0.1 - - [13/Oct/2003:13:40:39 +0400] "HEAD / HTTP/1.1" 200 0
ls:
-rw-r--r--    1 root     apache          0 Oct 13 13:39 /var/log/httpd/access_log


Expected Results:  
in tail window:
nothing
ls:
-rw-r--r--    1 root     apache          68 Oct 13 13:39 /var/log/httpd/access_log
------- Comment #1 From 2003-10-13 14:21:46 -------
the problem is in reload() function in /etc/rc.d/init.d/httpd
adding "--name libhttpd.ep" to stop_daemon parameters in that function resolves
the problem.
------- Comment #2 From 2003-10-13 17:59:21 -------
please see attachment -- this will be in 1.3.28rusPL30.18-alt7
------- Comment #3 From 2003-10-13 18:03:27 -------
Created an attachment (id=294) [details]
fixed initscript
------- Comment #4 From 2003-10-18 20:10:27 -------
fixed in 1.3.28rusPL30.18-alt7
------- Comment #5 From 2003-10-18 20:19:24 -------
see #2950, btw
------- Comment #6 From 2004-01-12 20:29:58 -------
Still here.

[lakostis@lks lakostis]$ rpm -q service
service-0.5.2-alt1

[lakostis@lks lakostis]$ rpm -q apache
apache-1.3.29rusPL30.18-alt2

[lakostis@lks lakostis]$ ls /etc/init.d/* | grep http
/etc/init.d/httpd

[lakostis@lks lakostis]$ su -c "ls /etc/logrotate.d/ | grep apache"
Password:
apache
[lakostis@lks lakostis]$
- т.е. .rpmnew нет.
------- Comment #7 From 2004-01-25 17:49:35 -------
Гм.  У меня сейчас указанный тест приводит к попаданию информации в access_log
(и `tail -f`, который его переоткрывает, видимо).

ALT Linux Sisyphus (20040122)

Костик, можешь проверить пошагово и конкретизировать?
------- Comment #8 From 2004-03-14 15:03:07 -------
Предложено делать при logrotate не condreload, а condrestart.
Так будет в 1.3.29rusPL30.18-alt6.

---

<dmi> http://www.webmasterworld.com/forum23/1740.htm
<dmi> там говорят надо делать рестарт
<dmi> когда логи уже созданы

<dmi> --- /etc/logrotate.d/apache.orig        2004-03-14 14:46:13 +0300
<dmi> +++ /etc/logrotate.d/apache     2004-03-14 14:46:23 +0300
<dmi> @@ -4,7 +4,7 @@
<dmi>      sharedscripts
<dmi>      create 0644 root apache
<dmi>      postrotate
<dmi> -       /sbin/service httpd condreload >/dev/null
<dmi> +       /sbin/service httpd condrestart >/dev/null
<dmi>      endscript
<dmi>  }
<dmi> @@ -14,6 +14,6 @@
<dmi>      sharedscripts
<dmi>      create 0644 root apache
<dmi>      postrotate
<dmi> -       /sbin/service httpd-perl condreload >/dev/null
<dmi> +       /sbin/service httpd-perl condrestart >/dev/null
<dmi>      endscript
<dmi>  }
------- Comment #9 From 2004-06-16 13:52:18 -------
вроде поправлено
------- Comment #10 From 2004-06-27 21:27:34 -------
Не надо делать condrestart - всё равно не поможет.
Проблема в init.d/httpd - там в reload() использована неправильная конструкция:
stop_daemon --lockfile "$LOCKFILE" -HUP

Поясню, что происходит:
1. первый condreload:
"$LOCKFILE" на месте, процессу посылается HUP, после чего "$LOCKFILE" удаляется.
1. второй condreload/condrestart:
"$LOCKFILE" отсутствует, процессу ничего не посылается.

Если stop_daemon используется для посылки сигнала, а не для завершения работы
демона, то --lockfile не только не нужен, но даже вреден.

Workarounded in service-0.5.4-alt1

Ещё раз: не надо делать condrestart, ибо condreload тоже работает.
------- Comment #11 From 2004-06-27 23:11:17 -------
Спасибо, пошел фиксить.

Имеет ли смысл продублировать это пояснение/иллюстрацию в документации service?
------- Comment #12 From 2004-06-27 23:15:55 -------
Что характерно -- в httpd-perl.init.Sisyphus этот момент был оформлен правильно
;-]
------- Comment #13 From 2004-06-27 23:42:31 -------
Та же проблема есть в /etc/rc.d/init.d/
dovecot
httpd2
kadmin
krb5kdc
psion
slurpd

Именно поэтому
$ rpmquery --lastchange service
* Sun Jun 27 2004 Dmitry V. Levin <ldv@altlinux> 0.5.4-alt1
- functions/stop_daemon:
  + when sending HUP, do not remove lockfile to workaround
    bugs in third party rc scripts.
------- Comment #14 From 2004-06-28 01:43:21 -------
fixed in 1.3.31rusPL30.20-alt5