[Bug 1215538] New: systemd-sysusers fails when upgrading packages on WSL with Failed to take /etc/passwd lock
https://bugzilla.suse.com/show_bug.cgi?id=1215538 Bug ID: 1215538 Summary: systemd-sysusers fails when upgrading packages on WSL with Failed to take /etc/passwd lock Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: x86-64 OS: Windows 10 Status: NEW Severity: Normal Priority: P5 - None Component: WSL Assignee: sle-ms@suse.de Reporter: brunopitrus@hotmail.com QA Contact: qa-c@suse.de Target Milestone: --- Found By: --- Blocker: --- When trying to upgrade a Tumbleweed installation on WSL (Windows 10 19045.3448), several core system packages are failing to install: /usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-nobody.conf - Failed to take /etc/passwd lock: Invalid argument error: %prein(system-user-nobody-20170617-25.1.noarch) scriptlet failed, exit status 1 (0/5) Executing prein script for: system-user-nobody-20170617-25.1.noarch .................[błąd] error: system-user-nobody-20170617-25.1.noarch: install failed /usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-man.conf - Failed to take /etc/passwd lock: Invalid argument error: %prein(system-user-man-20170617-25.1.noarch) scriptlet failed, exit status 1 (0/5) Executing prein script for: system-user-man-20170617-25.1.noarch ....................[błąd] error: system-user-man-20170617-25.1.noarch: install failed /usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-lp.conf - Failed to take /etc/passwd lock: Invalid argument error: %prein(system-user-lp-20170617-25.1.noarch) scriptlet failed, exit status 1 (0/5) Executing prein script for: system-user-lp-20170617-25.1.noarch .....................[błąd] error: system-user-lp-20170617-25.1.noarch: install failed /usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-games.conf - Failed to take /etc/passwd lock: Invalid argument error: %prein(system-user-games-20170617-25.1.noarch) scriptlet failed, exit status 1 (0/5) Executing prein script for: system-user-games-20170617-25.1.noarch ..................[błąd] error: system-user-games-20170617-25.1.noarch: install failed /usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/dbus.conf - Failed to take /etc/passwd lock: Invalid argument error: %prein(dbus-1-common-1.14.8-1.3.noarch) scriptlet failed, exit status 1 (0/5) Executing prein script for: dbus-1-common-1.14.8-1.3.noarch .........................[błąd] error: dbus-1-common-1.14.8-1.3.noarch: install failed error: system-user-nobody-20170617-24.13.noarch: erase skipped error: system-user-man-20170617-24.13.noarch: erase skipped error: system-user-lp-20170617-24.13.noarch: erase skipped error: system-user-games-20170617-24.13.noarch: erase skipped error: dbus-1-common-1.14.8-1.2.noarch: erase skipped -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c1 --- Comment #1 from dziobian <brunopitrus@hotmail.com> --- All of the broken packages have a dependency on sysuser-shadow which tries to execute this command only if systemd is installed. systemd has absolutely no business bein installed inside WSL (or any container). I could uninstall it if it weren't pulled in as a dependency of `man` which I use. Assigning this to the man maintainers. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 dziobian <brunopitrus@hotmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|sle-ms@suse.de |werner@suse.com -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c2 Dr. Werner Fink <werner@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |scott.bradnick@suse.com, | |systemd-maintainers@suse.de | |, werner@suse.com Assignee|werner@suse.com |sle-ms@suse.de --- Comment #2 from Dr. Werner Fink <werner@suse.com> --- (In reply to Bruno Pitrus from comment #1)
All of the broken packages have a dependency on sysuser-shadow which tries to execute this command only if systemd is installed.
systemd has absolutely no business bein installed inside WSL (or any container). I could uninstall it if it weren't pulled in as a dependency of `man` which I use.
Assigning this to the man maintainers.
Why man maintainers? This is more a systemd problem ... the message Failed to take /etc/passwd lock: Invalid argument shows that some bigger problem. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c4 --- Comment #4 from Dr. Werner Fink <werner@suse.com> --- (In reply to Bruno Pitrus from comment #3)
Because the dependency of `man` on `systemd` is unnecessary.
You mean that I should ignore that now man or better its mandb command will not be executed without systemd timer? rpm -qf /usr/lib/systemd/system/timers.target systemd-254.5-5.1.x86_64 rpm -ql man | grep usr/lib/systemd/system /usr/lib/systemd/system/man-db-create.service /usr/lib/systemd/system/man-db.service /usr/lib/systemd/system/man-db.timer -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c6 --- Comment #6 from Dr. Werner Fink <werner@suse.com> --- (In reply to Thorsten Kukuk from comment #5)
(In reply to Dr. Werner Fink from comment #4)
(In reply to Bruno Pitrus from comment #3)
Because the dependency of `man` on `systemd` is unnecessary.
You mean that I should ignore that now man or better its mandb command will not be executed without systemd timer?
On WSL and in containers mandb will never be executed by systemd timer, even with your Requires. Because systemd does not run in this environments, even if you add it as Requires. On a "standard" installation, systemd is always installed and running, we don't support anything else.
The problem is that running mandb in %post or %posttrans to create man data base takes ages therefore I use due several bug reports now systemd API. Are there possibilities to detect in %post or %posttrans during installation time what surrounding environment will be used (WSL, container, or systemd based). -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c8 --- Comment #8 from Dr. Werner Fink <werner@suse.com> --- Main problems are: Creation of system group/user man Creation of /var/cache/man Creation of the various index.db below /var/cache/man/ currently done with systemd. I really want to know why one like to use man in a container ... now I've readded the old why of adding group/user man if not already done by systemd also creating /var/cache/man if not done by systemd as well as use filetriggers lua scriptlets to get the index.db below /var/cache/man/ created as well as uptodate -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c9 --- Comment #9 from OBSbugzilla Bot <bwiedemann+obsbugzillabot@suse.com> --- This is an autogenerated message for OBS integration: This bug (1215538) was mentioned in https://build.opensuse.org/request/show/1141710 Factory / man -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1215538 https://bugzilla.suse.com/show_bug.cgi?id=1215538#c12 --- Comment #12 from Dr. Werner Fink <werner@suse.com> --- (In reply to Thorsten Kukuk from comment #11)
For the user creation part I think we should better enhance the sysuser-tools script to use the fallbacks in the case systemd fails, too. Will try to look at it after my sick leave.
Isn't that what /usr/sbin/sysusers2shadow does in case of missing /usr/bin/systemd-sysusers? Nevertheless The creation of /var/cache/man by systemd-tmpfiles is also a problem if /usr/bin/systemd-tmpfiles does not exists -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com