Bug 43903 - Взаимоблокировка openresolv и host2cat при запуске NetworkManager
Summary: Взаимоблокировка openresolv и host2cat при запуске NetworkManager
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: openresolv-host2cat (show other bugs)
Version: не указана
Hardware: aarch64 Linux
: P5 normal
Assignee: Andrey Cherepanov
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-29 17:01 MSK by jqt4
Modified: 2023-01-26 15:29 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 jqt4 2022-09-29 17:01:48 MSK
В образе alt-education-rpi, собранном на p10, при 1-й загрузке системы возникает заметная пауза перед запуском alterator-setup.
Пауза возникает только при подключенном Ethernet, если подключения нет - проблема не воспроизводится.

Длительность паузы зависит от настройки:
/lib/systemd/system/NetworkManager-wait-online.service
Environment=NM_ONLINE_TIMEOUT=600

После истечения настроенного времени NetworkManager-wait-online.service завершается аварийно:
Aug 11 10:26:08 localhost.localdomain systemd[1]: Starting Network Manager Wait Online...
Aug 11 10:36:08 localhost.localdomain systemd[1]: NetworkManager-wait-online.service: Main process exited, code=exited, status=1/FAILURE
Aug 11 10:36:08 localhost.localdomain systemd[1]: NetworkManager-wait-online.service: Failed with result 'exit-code'.
Aug 11 10:36:08 localhost.localdomain systemd[1]: Failed to start Network Manager Wait Online.

После этого запускается alterator-setup.

Исследование проблемы показало, что NetworkManager ждёт завершения процесса resolvconf, который в свою очередь ждёт завершения
systemctl restart host2cat.service
который ждёт network-online.target, то есть NetworkManager.

localhost ~ # pstree -a
systemd
  ├─ModemManager
  │   └─2*[{ModemManager}]
  ├─NetworkManager --no-daemon
  │   ├─resolvconf /sbin/resolvconf -a NetworkManager
  │   │   └─resolvconf /sbin/resolvconf -a NetworkManager
  │   │       └─systemctl restart host2cat.service
  │   └─2*[{NetworkManager}]

Возникает циклическая зависимость и взаимоблокировка.
Comment 1 jqt4 2022-09-30 11:14:32 MSK
Образ, в котором наблюдается проблема:
http://beta.altlinux.org/education/aarch64/alt-education-10.1-beta2-rpi4-aarch64.img.xz
Comment 2 Ivan Alekseev 2023-01-26 13:28:24 MSK
По указанным шагам ошибка не воспроизвелась.

Стенд: Raspberry Pi 4 с системой из образа http://beta.altlinux.org/education/aarch64/alt-education-10.1-beta2-rpi4-aarch64.img.xz

Версии пакетов:
openresolv-3.12.0-alt1.noarch
NetworkManager-1.32.12-alt2.aarch64
NetworkManager-daemon-1.32.12-alt2.aarch64
host2cat-1.01-alt7.aarch64

Шаги для воспроизведения:
1) Записать образ alt-education-10.1-beta2-rpi4-aarch64.img.xz на MicroSD, например:
# alt-rootfs-installer --image-in=alt-education-10.1-beta2-rpi4-aarch64.img.xz --media=/dev/sda --efi-mbr
2) Вставить карточку с системой в Raspberry Pi 4, подключить кабель Ethernet, включить компьютер и дождаться открытия alterator-setup.
3) Проверить статус сервиса NetworkManager-wait-online.service:
# systemctl status NetworkManager-wait-online.service

Фактический результат: 
При первом запуске с подключенным Ethernet система загружается значительно медленнее, чем без него. Время от включения компьютера до открытия alterator-setup при первой загрузке системы:
1) С подключенным Ethernet: 1 минута 40 секунд.
2) Без подключенного Ethernet: 52 секунды.
Статус сервиса NetworkManager-wait-online.service: failed.

Ожидаемый результат:
При первом запуске с подключенным Ethernet система загружается так же быстро, как и без него.
Статус сервиса NetworkManager-wait-online.service: active.

Не проверялось на Sisyphus.
Comment 3 Ivan Alekseev 2023-01-26 13:29:31 MSK
(Ответ для Ivan Alekseev на комментарий #2)
> По указанным шагам ошибка не воспроизвелась.
Прошу прощения. Воспроизвелась, конечно же.