Bug 31740

Summary: Нет механизма воссоздания /var/run/dbus под sysvinit
Product: Sisyphus Reporter: solo <solo>
Component: dbusAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: asy, d20052005, shrek
Version: unstableKeywords: NMU, backport, patch, systemd
Hardware: all   
OS: Linux   
URL: https://lists.altlinux.org/pipermail/sysadmins/2016-January/037392.html
Bug Depends on: 31718    
Bug Blocks:    

Description solo 2016-01-28 21:53:51 MSK
В текущем dbus отсутствует механизм воссоздания каталогов /var/run/dbus{,/users}, работающий под sysvinit. При размещении /var/run на tmpfs (например как симлинк на /run), это приводит к неработоспособности dbus sysvinit.

Предлагаю:

1. Обеспечить функционирование systemd-tmpfiles под sysvinit (см. https://bugzilla.altlinux.org/show_bug.cgi?id=31718).

2. Настроить создание каталогов /var/run/dbus{,/users} через /lib/tmpfiles.d/dbus.conf.

PS:

1. Несмотря на отсутствие соответствующих настроек в {/etc,{,/usr}/lib}/tmpfiles.d/, systemd каталог /var/run/dbus воссоздаёт. Возможно он использует информацию из /lib/systemd/system/dbus.socket.

2. Я наткнулся на подобное в p7/t7 (см. https://lists.altlinux.org/pipermail/sysadmins/2016-January/037392.html), но судя по коду данная ситуация характерна и для Сизифа.
Comment 1 solo 2016-01-29 14:07:39 MSK
(В ответ на комментарий №0)
...
> Предлагаю:
...
> 2. Настроить создание каталогов /var/run/dbus{,/users} через
> /lib/tmpfiles.d/dbus.conf.

В http://git.altlinux.org/tasks/156794/ собран dbus-1.10.6-alt1.1 (см. http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=5b8fc455dbcabade3fdbcc527bb1e8efea775351) -- тестовый вариант для оценки предлагаемых изменений.

В http://git.altlinux.org/tasks/156795/ собран dbus-1.6.30-alt0.M70T.2.1 (см. http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=f909b3dc1d6a1db695a07f08a5af933abaa164a1) -- тестовый вариант порта предлагаемых изменений на p7.
Comment 2 solo 2016-01-30 02:57:22 MSK
(В ответ на комментарий №1)
...
> В http://git.altlinux.org/tasks/156795/ собран dbus-1.6.30-alt0.M70T.2.1 (см.
> http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=f909b3dc1d6a1db695a07f08a5af933abaa164a1)
> -- тестовый вариант порта предлагаемых изменений на p7.

Тестирование (совместное с systemd-201-alt1.M70T.2.2, см. https://bugzilla.altlinux.org/show_bug.cgi?id=31718) 1.6.30-alt0.M70T.2.2 (см. http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=3ab91a455abb1a7375fbc98bf4f80ad6b5dad5aa) показало, что заявленные цели
достигнуты: под systemd и sysvinit каталоги /var/run/dbus{,/users} создаются и dbus нормально работает в следующих конфигурациях:

а) /run, /var/run и /var/lock отдельные каталоги;

б) /run каталог + симлинки /var/run -> /run и /var/lock -> /run/lock;

Финальные подготовленные варианты, для соответствующих репозиториев, ждут
одобрения (отправлены на тестовую сборку):

1. Для Сизифа -- dbus-1.10.6-alt2 (см. http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=c0502f59c2d01b9a2ae359ead011fcfa96228775) в http://git.altlinux.org/tasks/156794/.

2. Для t7 -- dbus-1.6.30-alt0.M70T.3 (см. http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=1f47a54b79a5219163e3fbabc4ccf38e4779b4cf) в http://git.altlinux.org/tasks/156795/.
Comment 3 Valery Inozemtsev 2016-02-02 14:17:11 MSK
/var/run/dbus/users/dbus-XXXXXXXXXX это абстрактный сокет и обозвать его можно как угодно. на файловой системе ему быть не обязательно
Comment 4 solo 2016-02-02 18:23:56 MSK
(В ответ на комментарий №3)
> /var/run/dbus/users/dbus-XXXXXXXXXX это абстрактный сокет и обозвать его можно
> как угодно. на файловой системе ему быть не обязательно

Т. е. если dbus, настроенный на открытие некоего /var/run/dbus/users/dbus-XXXXXXXXXX сможет нормально стартовать, при отсутствии каталога /var/run/dbus/users?

А как быть при отсутствии /var/run/dbus? При его отсутствии dbus падает при старте (по крайней мере dbus-1.6.30-alt0.M70T.2 при старте из под sysvinit) -- падает из-за отсутствия каталога для размещения /var/run/dbus/system_bus_socket (описано в https://lists.altlinux.org/pipermail/sysadmins/2016-January/037392.html).

Багу переоткрываю.
Comment 5 solo 2016-03-20 19:29:02 MSK
Повесил https://bugs.freedesktop.org/show_bug.cgi?id=94638.
Comment 6 solo 2016-03-23 11:27:02 MSK
*** Bug 31906 has been marked as a duplicate of this bug. ***
Comment 7 solo 2016-03-23 21:07:56 MSK
В связи с https://bugzilla.altlinux.org/show_bug.cgi?id=31906 реанимировал протухшие таски:

(В ответ на комментарий №2)
...
> 
> Финальные подготовленные варианты, для соответствующих репозиториев, ждут
> одобрения (отправлены на тестовую сборку):
> 
> 1. Для Сизифа -- dbus-1.10.6-alt2 (см.
> http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=c0502f59c2d01b9a2ae359ead011fcfa96228775)
> в http://git.altlinux.org/tasks/156794/.

Теперь в http://git.altlinux.org/tasks/161915.

> 
> 2. Для t7 -- dbus-1.6.30-alt0.M70T.3 (см.
> http://git.altlinux.org/people/solo/packages/?p=dbus.git;a=commit;h=1f47a54b79a5219163e3fbabc4ccf38e4779b4cf)
> в http://git.altlinux.org/tasks/156795/.

Теперь в http://git.altlinux.org/tasks/161916.
Comment 8 Sergey Y. Afonin 2016-03-25 08:54:10 MSK
Собственно, repocop давно предупреждает про subdir-in-var-run. 
Предлагаю вставить в init-скрипт что-то вроде

[ -d "/var/run/dbus" ] || {
    mkdir -m 755 "/var/run/dbus"
}
[ -d "/var/run/dbus/users" ] || {
        mkdir -m 1777 "/var/run/dbus/users"
}
Comment 9 Valery Inozemtsev 2016-07-25 22:18:12 MSK
исправлено в 1.10.8-alt1