Bug 34284 - Failed to start Update openresolv data from systemd-resolved.
Summary: Failed to start Update openresolv data from systemd-resolved.
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: systemd-networkd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-05 21:57 MSK by Michael Shigorin
Modified: 2021-08-18 16:38 MSK (History)
4 users (show)

See Also:


Attachments
снимок экрана виртуальной машины (33.00 KB, image/png)
2017-12-05 21:57 MSK, Michael Shigorin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2017-12-05 21:57:54 MSK
Created attachment 7297 [details]
снимок экрана виртуальной машины

При установке и последующей загрузке alt-p8-server-pve-20171205-x86_64.iso под управлением virtualbox пронаблюдал картинку с приложенного снимка экрана.

# rpm -qf /lib/systemd/system/altlinux-openresolv.service
systemd-networkd-230-alt1.M80P.7
Comment 1 Arseny Maslennikov 2017-12-24 00:58:55 MSK
> Product: branch p8
Я такое и в сизифе наблюдаю (правда, слегка подгнившем):

% rpm -qf /lib/systemd/system/altlinux-openresolv.service
systemd-networkd-234-alt3.x86_64

При взгляде на юнит-файл становится понятно, что он нужен только самому systemd-networkd, чтобы его DNS-настройки были понятны resolvconf.

% systemctl cat altlinux-openresolv
# /lib/systemd/system/altlinux-openresolv.service
[Unit]
Description=Update openresolv data from systemd-resolved
After=network.target
ConditionFileIsExecutable=/sbin/resolvconf
ConditionPathIsSymbolicLink=!/etc/resolv.conf

[Service]
Type=oneshot
TimeoutSec=35s
StartLimitBurst=20
ExecStart=/bin/sh -c 'if /lib/systemd/systemd-networkd-wait-online --timeout=30; then /sbin/resolvconf -a systemd-networkd < /run/systemd/resolve/resolv.conf; fi'

Юнит валится с ошибкой, потому что, видимо, resolved в той конфигурации не используется.

Чтобы объявить о бессмысленности юнита без работающих resolved и networkd, можно, например, дописать в юнит ещё вот это:

# /etc/systemd/system/altlinux-openresolv.service.d/conditions.conf
[Unit]
ConditionPathIsDirectory=/run/systemd/network
ConditionDirectoryNotEmpty=/run/systemd/resolve

Этого достаточно, чтобы юнит помалкивал и не падал, засоряя логи и выдачу `systemctl status'.

% systemctl status altlinux-openresolv
● altlinux-openresolv.service - Update openresolv data from systemd-resolved
   Loaded: loaded (/lib/systemd/system/altlinux-openresolv.service; static; vendor preset: disabled)
  Drop-In: /etc/systemd/system/altlinux-openresolv.service.d
           └─conditions.conf
   Active: inactive (dead) since Wed 2017-11-29 00:37:38 MSK; 3 weeks 4 days ago
Condition: start condition failed at Sun 2017-12-24 00:27:53 MSK; 13min ago
           └─ ConditionPathIsDirectory=/run/systemd/network was not met
 Main PID: 10017 (code=killed, signal=TERM)

Все операции выше были проделаны на инсталляции alt server p8, обновлённой до сизифа, т. е. сетью там заведует etcnet.

Ну и, на мой вкус, название у юнита ужасное, потому что вообще не говорящее о том, что там какой-то networkd замешан. :)
Comment 2 Michael Shigorin 2018-01-16 13:55:43 MSK
Действительно, на regular-lxde-20180116-i586.iso тоже пронаблюдали.
Comment 3 Alexey Shabalin 2021-08-18 16:38:04 MSK
ConditionDirectoryNotEmpty=/run/systemd/resolve
Добавлен в 242-alt7.