Bug 28789 - Некорректно распознаёт состояние сервиса spamd (sysvinit)
Summary: Некорректно распознаёт состояние сервиса spamd (sysvinit)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: spamassassin-spamd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Sergey Y. Afonin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 32263
  Show dependency tree
 
Reported: 2013-04-04 13:10 MSK by Evgenii Terechkov
Modified: 2016-07-11 23:47 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evgenii Terechkov 2013-04-04 13:10:51 MSK
При dist-upgrade:

9: spamassassin-spamd               ################################################################################################### [ 75%]
Service spamd is not running.[PASSED]
Starting spamd service: Apr  4 09:00:54.837 [9855] warn: server socket setup failed, retry 1: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:00:55.838 [9855] warn: server socket setup failed, retry 2: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:00:56.838 [9855] warn: server socket setup failed, retry 3: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:00:57.839 [9855] warn: server socket setup failed, retry 4: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:00:58.840 [9855] warn: server socket setup failed, retry 5: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:00:59.840 [9855] warn: server socket setup failed, retry 6: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:01:00.841 [9855] warn: server socket setup failed, retry 7: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:01:01.841 [9855] warn: server socket setup failed, retry 8: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:01:02.842 [9855] warn: server socket setup failed, retry 9: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
Apr  4 09:01:03.843 [9855] error: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
spamd: could not create INET socket on 127.0.0.1:783: Address already in use
[FAILED]

Работа apt-а при этом не прерывается, но обновление пакета фактически не происходит, т.к. не происходит перезапуск. Демон в действительности запущен:

root@visp ~ # netlist|grep :783
root     1515  /usr/bi+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN
root     1520  spamd c+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN
root     1518  spamd c+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN

Попробовал остановить вручную:
root@visp ~ # service spamd stop 
Service spamd is not running.[PASSED]

Нет эффекта:
root@visp ~ # netlist|grep :783 
root     1515  /usr/bi+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN
root     1520  spamd c+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN
root     1518  spamd c+ 5 tcp       127.0.0.1:783           0.0.0.0:0     LISTEN

root@visp ~ # rpm -qf =spamd
spamassassin-spamd-3.3.2-alt2

root@visp ~ # rpm -V spamassassin-spamd
root@visp ~ # cat /var/run/spamd.pid 
1515
Comment 1 Chess 2013-06-07 15:14:52 MSK
аналогично

#> service spamd status
spamd is dead, but stale PID file exists

#> cat /var/run/spamd.pid 
3465

#> ps axuw | grep spam
root      3465  0.0  1.5  36396 32496 ?        Ss   12:12   0:05 /usr/bin/spamd -d --pidfile=/var/run/spamd.pid 
mail      4222 16.8  6.7 146976 139860 ?       S    12:12  20:26 spamd child
Comment 2 Sergey Y. Afonin 2014-06-19 12:54:40 MSK
Проблема или в start-stop-daemon, или в его использовании:
http://lists.altlinux.org/pipermail/devel/2014-June/198779.html
Comment 3 Sergey Y. Afonin 2014-06-20 11:11:23 MSK
В итоге, что имеем. 
1. В /proc/<pid>/stat имя с пробелом: "/usr/bin/spamd "
2. Пробел передать нельзя: http://bugzilla.altlinux.org/show_bug.cgi?id=27531#c1
3. Cимлинк /proc/<pid>/exe делается на бинарник с версией (/usr/bin/perl5.18.2), потому к нему привязываться тоже нельзя.

До лучших времён переписал в init-скрипте stop() и reload() с вызовом start-stop-daemon напрямую. Вроде бы работает...
Comment 4 Repository Robot 2014-06-23 12:49:21 MSK
spamassassin-3.4.0-alt1 -> sisyphus:

* Thu Jun 19 2014 Sergey Y. Afonin <asy@altlinux> 3.4.0-alt1
- NMU: 3.4.0 (ALT #30063)
- fixed start, stop, reload and status options in init.d/spamd (ALT #28789)
- changed permisson for sa-update-keys directory to 700
- added lsb init header for init.d/spamd
- removed /var/run/spamd directory (/var/run used for pid file)
- added CHILDUSER variable and described it in the /etc/sysconfig/spamd
Comment 5 Sergey Y. Afonin 2014-06-23 12:56:39 MSK
(In reply to comment #3)

> До лучших времён переписал в init-скрипте stop() и reload() с вызовом
> start-stop-daemon напрямую. Вроде бы работает...

"лучшие времена" наступили: start-stop-daemon, оказывается, симлинк /usr/bin/perl тоже понимает, как /usr/bin/perl<version>