Bug 37236 - Запускать udevd-final на sysvinit до NetworkManager
Summary: Запускать udevd-final на sysvinit до NetworkManager
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: udev-rule-generator (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Sergey Y. Afonin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000
  Show dependency tree
 
Reported: 2019-09-18 18:21 MSK by Антон Мидюков
Modified: 2019-11-06 15:18 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2019-09-18 18:21:22 MSK
init-скрипт NetworkManager запускается до udevd-final. До перехода на симлинк /var/run -> /run это не создаёт проблем. После перехода на симлинк NetworkManager не настраивает соединения, nm-applet сообщает, что интерфейсы не управляются.

Определил опытным путём, что проблема в том, что NetworkManager запускается до udevd-final.

Предлагаю добавить в LSB-header init-скрипта NetworkManager зависимость на udevd-final

-# Required-Start: $local_fs messagebus
-# Required-Stop: $local_fs messagebus
+# Required-Start: $local_fs messagebus udevd-final
+# Required-Stop: $local_fs messagebus udevd-final

Проблема блокирует перевод регулярок/стартеркитов на симлинк: /var/run -> /run
Comment 1 Антон Мидюков 2019-09-18 18:23:58 MSK
Немножко не на тот пакет повесил. На NetworkManager-daemon надо.
Comment 2 Mikhail Efremov 2019-09-18 19:54:05 MSK
Это может вызвать кучу проблем, приоритет udev-final аж 32. Т.е. NM будет запускаться очень поздно, многие сервисы, ожидающие поднятую сеть, будут работать неправильно. Надо посмотреть нельзя ли udev-final запускать раньше.
Comment 3 Антон Мидюков 2019-09-18 20:12:38 MSK
(В ответ на комментарий №2)
> Это может вызвать кучу проблем, приоритет udev-final аж 32. Т.е. NM будет
> запускаться очень поздно, многие сервисы, ожидающие поднятую сеть, будут
> работать неправильно. Надо посмотреть нельзя ли udev-final запускать раньше.

Согласен. Тогда перевешиваю на udev-rule-generator.

И, возможно, стоит вообще на десктопах udev-rule-generator-net не использовать.
Comment 4 Sergey Y. Afonin 2019-09-19 11:09:24 MSK
(In reply to comment #2)

> приоритет udev-final аж 32.

Интересно, почему 32, а не сразу после udev, скажем 03. udev что-то сделать не успевает до этого момента? Или просто так получилось?
Comment 5 Антон Мидюков 2019-09-19 13:09:32 MSK
(В ответ на комментарий №4)
> (In reply to comment #2)
> 
> > приоритет udev-final аж 32.
> 
> Интересно, почему 32, а не сразу после udev, скажем 03. udev что-то сделать не
> успевает до этого момента? Или просто так получилось?
Comment 6 Антон Мидюков 2019-09-19 13:10:27 MSK
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > (In reply to comment #2)
> > 
> > > приоритет udev-final аж 32.
> > 
> > Интересно, почему 32, а не сразу после udev, скажем 03. udev что-то сделать не
> > успевает до этого момента? Или просто так получилось?

Мне тоже интересно. Но делать что будем?
Comment 7 Антон Мидюков 2019-09-19 13:24:39 MSK
Нашёл исходный коммит:
http://git.altlinux.org/gears/u/udev.git?p=udev.git;a=commitdiff;h=5940de873bb9b5b01e30d1ac8e0a132e65143bf7

Some events cannot be handled completely at early boot stages.  The
udevd-final service retries failed events later, when other parts of
the system have been initialized.

This service also handles some shutdown actions, like saving ALSA
mixer state, that cannot be performed from udev rules (previosly the
hotplug service did this, but now it is obsolete).

Вероятно, всё это уже не актуально.
Comment 8 Sergey Y. Afonin 2019-09-19 15:37:10 MSK
(In reply to comment #7)

> Вероятно, всё это уже не актуально.

Тут что-то вообще не то: про сохранение настроек микшера.

Единственное, что он делает при старте, это копирует /run/udev/tmp-rules--* в /etc/udev/rules.d/. Точнее дописывает к существующим файлам, если одноимённые встречаются. Если /run/udev/ гарантированно заполнен к концу service udev start, то 03 на стрте впоне нормально. Очерёдность stop вообще ни на что не влияет, там только $LOCKFILE удаляется. Но я не уверен, что раньше следующей недели смогу проверить. На самом деле есть ещё проблема: Bug #32166. Надо и её посмотреть.
Comment 9 Mikhail Efremov 2019-09-19 16:07:34 MSK
У меня вообще сомнения, что udevd-final сейчас нужен. Возможно все должен делать сам udevd инит-скрипт. И тот тоже надо внимательно прочитать, я там видел что-то, что мне не понравилось.
Comment 10 Sergey Y. Afonin 2019-09-20 10:46:23 MSK
(In reply to comment #9)

> У меня вообще сомнения, что udevd-final сейчас нужен.

В текущей реинкарнации udevd-final решал проблему https://bugzilla.altlinux.org/29282#c11

(In reply to comment #0)

> Определил опытным путём, что проблема в том, что NetworkManager запускается до
> udevd-final.

Кстати, это должно влиять только при первом запуске. При последующих запусках persistent-net.rules уже должен существовать, и udevd-final уже ничего не делает в этой ситуации.
Comment 11 Антон Мидюков 2019-11-06 15:18:38 MSK
* Wed Sep 25 2019 Anton Midyukov <antohami at altlinux.org> 2:1.3-alt1
- run udevd-final before raising the network