Bug 40802

Summary: бессмысленный запуск ldconfig при загрузке с LiveCD
Product: Sisyphus Reporter: Alexey Sheplyakov <asheplyakov>
Component: mkimage-profilesAssignee: Антон Мидюков <antohami>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, mike, sem, shaba
Version: unstable   
Hardware: all   
OS: Linux   

Description Alexey Sheplyakov 2021-08-23 14:13:18 MSK
# systemd-analyze critical-chain 
graphical.target @8.265s
└─lightdm.service @8.220s +43ms
  └─systemd-user-sessions.service @5.054s +6ms
    └─network.target @5.051s
      └─NetworkManager.service @4.770s +280ms
        └─network.service @4.397s +371ms
          └─sysinit.target @4.373s
            └─systemd-update-done.service @4.368s +5ms
              └─ldconfig.service @1.233s +3.134s
                └─local-fs.target @1.232s
                  └─tmp.mount @1.229s +3ms
                    └─local-fs-pre.target @1.228s
                      └─lvm2-monitor.service @308ms +919ms
                        └─systemd-journald.socket @294ms
                          └─system.slice @284ms
                            └─-.slice @284ms

38% времени тратится впустую на (бессмысленное) выполнение ldconfig.
Можно обойти, загрузившись с

systemd.condition-needs-update=no

но хочется, чтоб работало "из коробки", без чёрной магии.
Например, чтобы в образе был (пустой) файл /etc/.updated, с mtime более "новым",
чем у директории /usr (см. man systemd-update-done.service)

P.S. Проблема не только в Simply, но и в Workstation и прочих образах.

P.P.S. На какой пакет можно повесить этот баг?
Comment 1 Mikhail Efremov 2022-04-13 14:22:02 MSK
Навскидку: для live можно добавить прямо в m-p, для устанавливаемых систем - postinstall-скрипт в installer.
Comment 2 Антон Мидюков 2022-04-13 14:41:10 MSK
(Ответ для Alexey Sheplyakov на комментарий #0)
> но хочется, чтоб работало "из коробки", без чёрной магии.
> Например, чтобы в образе был (пустой) файл /etc/.updated, с mtime более
> "новым",
> чем у директории /usr (см. man systemd-update-done.service)

Точно пустой? У меня два одинаковых файла /etc/.updated и /var/.updated:
# This file was created by systemd-update-done. Its only 
# purpose is to hold a timestamp of the time this directory
# was updated. See man:systemd-update-done.service(8).
TIMESTAMP_NSEC=1600057782544812822
Comment 3 Антон Мидюков 2022-04-13 17:54:02 MSK
(Ответ для Антон Мидюков на комментарий #2)
> (Ответ для Alexey Sheplyakov на комментарий #0)
> > но хочется, чтоб работало "из коробки", без чёрной магии.
> > Например, чтобы в образе был (пустой) файл /etc/.updated, с mtime более
> > "новым",
> > чем у директории /usr (см. man systemd-update-done.service)
> 
> Точно пустой? У меня два одинаковых файла /etc/.updated и /var/.updated:
> # This file was created by systemd-update-done. Its only 
> # purpose is to hold a timestamp of the time this directory
> # was updated. See man:systemd-update-done.service(8).
> TIMESTAMP_NSEC=1600057782544812822

Да, пустые файлы проблему решают. Сделал такой коммит в mkimage-profiles:
https://git.altlinux.org/people/antohami/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=commitdiff;h=4662dc203d14f6c7157ef3ad7e0480196c5e1565
Comment 4 Mikhail Efremov 2022-04-13 18:04:32 MSK
Вообще у меня некоторые сомнения по этому поводу. Запуск ldconfig действительно выглядит бесполезным в данном случае, но так ведь отключается все действия, завязанные на systemd-update-done.service, насколько я понимаю. Там ведь может быть и что-то важное. Может лучше с ldconfig.service что-то сделать?
Comment 5 Антон Мидюков 2022-04-13 18:09:49 MSK
(Ответ для Mikhail Efremov на комментарий #4)
> Вообще у меня некоторые сомнения по этому поводу. Запуск ldconfig
> действительно выглядит бесполезным в данном случае, но так ведь отключается
> все действия, завязанные на systemd-update-done.service, насколько я
> понимаю. Там ведь может быть и что-то важное. Может лучше с ldconfig.service
> что-то сделать?

Замаскировать?
Comment 6 Mikhail Efremov 2022-04-13 18:36:37 MSK
Ну как вариант... Может его вообще не паковать? В каких случаях этот сервис может быть нам полезным?
Comment 7 Антон Мидюков 2024-03-28 11:25:00 MSK
Сделал пакет livecd-no-ldconfig-service https://packages.altlinux.org/ru/sisyphus/srpms/livecd-no-ldconfig-service/
Как попадёт в p10, добавлю в mkimage-profiles в цель use/live.
Comment 8 Repository Robot 2024-05-09 17:07:39 MSK
mkimage-profiles-1.6.4-alt1 -> sisyphus:

 Wed May 08 2024 Anton Midyukov <antohami@altlinux> 1.6.4-alt1
 - live: disable ldconfig.service by using livecd-no-ldconfig.service
   (Closes: 40802)
 - stage2: do not remove cjk and legacy fonts
 - Do not add menu items for SUBPROFILES
 - live: add use/live/rescue/extra as an analogue of use/rescue
 - regular.mk: initial regular-rescue-live
 - install2, live: add missing e2fsprogs
 - cleanup: create postinstall script for cleanup package for live with installer
 - init: add missing mingetty to sysvinit
 - mobile.mk: renaming of targets
 - server-v: apply commits from @andy