Bug 52364

Summary: При обновлении sssd без перезапуска возникают проблемы
Product: Sisyphus Reporter: Evgeny Sinelnikov <sin>
Component: sssdAssignee: Evgeny Sinelnikov <sin>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: asheplyakov, iv, jenya, liannnix, liannnix, shaba, sin, slev
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Evgeny Sinelnikov 2024-12-07 03:44:51 MSK
При обновлении sssd возникает отложенная проблема, при которой sssd падает из-за несовместимости базы, которая обновляется только при явном рестарте:

(4-12-03 11:20:48): [be[ipa.basealt.ru]] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.25] for domain ipa.basealt.

    BACKTRACE DUMP ENDS HERE *************************

3 11:20:48): [be[ipa.basealt.ru]] [sysdb_domain_init_internal] (0x0020): Could not open the sysdb cache [1432158282]: Sysdb version is too old
3 11:20:48): [be[ipa.basealt.ru]] [sssd_domain_init] (0x0040): Error opening cache database.

Суть исходной проблемы:
https://bugzilla.altlinux.org/34054
1. sssd разбит на множество модулей, собранных в разные пакеты;
2. при обновлении пакетов возникает взаимоисключение:
 * с одной стороны пакеты, вроде sssd-ad, зависят от пакета sssd и поэтому обновляются позже этого пакета;
 * с другой - перезапуск оформлен в рамках общего пакета sssd с сервисами (systemd-юнитами);
3. в результате, если перезапуск, выполняется при обновлении sssd, старые модули, вроде sssd-ad, которые бинарно несовместимы с новым sssd и его библиотеками, в момент перезапуска оказываются ещё не установлены.

Для решения этой задачи уже давно предусмотрены соответствующие инструменты:

$ rpm -qf /usr/lib/rpm/macros.d/systemd
rpm-macros-systemd-6-alt2.noarch

$ grep "Style 2" -A7 /usr/lib/rpm/macros.d/systemd
# Style 2
# For restart service at transaction end with rpm-filetrigger:
#
# %post
# %post_systemd_postponed demo.socket demo.service demo1
#
# %preun
# %preun_systemd demo.socket demo.service demo1
Comment 1 Repository Robot 2024-12-09 02:34:15 MSK
sssd-2.9.6-alt2 -> sisyphus:

 Sat Dec 07 2024 Evgeny Sinelnikov <sin@altlinux> 2.9.6-alt2
 - Add postponed restart of sssd services (closes: 52364).
 Fri Dec 06 2024 Evgeny Sinelnikov <sin@altlinux> 2.9.6-alt1
 - Update to latest 2.9 LTM release:
   + The DoT for dynamic DNS updates is supported now. It requires new version of
     nsupdate from BIND 9.19+. The dyndns_server option is extended so it can be
     in form of URI (dns+tls://1.2.3.4:853#servername). New set of options:
     dyndns_dot_cacert, dyndns_dot_cert and dyndns_dot_key allows to
     configure DNS-over-TLS communication.
   + The option default_domain_suffix is deprecated. Consider using the more
     flexible domain_resolution_order instead.
 Mon Dec 02 2024 Evgeny Sinelnikov <sin@altlinux> 2.9.5-alt2
 - Update to latest 2.9 LTM release with fixes from upstream:
   + dyndns: collect nsupdate debug output.
   + ldap_child: make sure invalid krb5 context is not used (GitHub#7715).
   + CLIENT: don't try to lookup `getservbyport(0, ...)`
   + OPTS: Add the option for DP_OPT_DYNDNS_REFRESH_OFFSET
   + pam_sss: add some missing cleanup calls.
   + ipa: Check sudo command threshold correctly
   + ssh: do not use default_domain_suffix
   + build: unbreak detection for x400Address
 - cert util: add support build with OpenSSL older than 3.0