microsoft / azurelinux

Linux OS for Azure 1P services and edge appliances
MIT License
4.16k stars 521 forks source link

glibc-nscd package is broken, nscd fails to run #7745

Open navjotsinghji opened 7 months ago

navjotsinghji commented 7 months ago

glibc-nscd package is broken, nscd fails to run

_navjotsingh@dev-navjotsingh:/localdata/navjotsingh/mariner/bld-subbase$ docker run -it mcr.microsoft.com/cbl-mariner/base/core:2.0 sh _sh-5.1# yum install glibc-nscd -y Loaded plugin: tdnfrepogpgcheck Refreshing metadata for: 'CBL-Mariner Official Base 2.0 x86_64' Refreshing metadata for: 'CBL-Mariner Official Microsoft 2.0 x86_64' Refreshing metadata for: 'CBL-Mariner Official Extras 2.0 x86_64' mariner-official-extras 49505 100% Installing: glibc-nscd x8664 2.35-6.cm2 mariner-official-base 153.52k 85.43k

_Total installed size: 153.52k Total download size: 85.43k glibc-nscd 87480 100% importing key from file:///etc/pki/rpm-gpg/MICROSOFT-RPM-GPG-KEY importing key from file:///etc/pki/rpm-gpg/MICROSOFT-METADATA-GPG-KEY Testing transaction Running transaction Installing/Updating: glibc-nscd-2.35-6.cm2.x8664 sh-5.1# /usr/sbin/nscd nscd: 42 /var/run/nscd/nscd.pid: No such file or directory nscd: 42 monitoring file /etc/passwd (1) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/group (3) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/hosts (4) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/resolv.conf (5) nscd: 42 monitoring directory /etc (2) nscd: 42 disabled inotify-based monitoring for file /etc/services': No such file or directory nscd: 42 stat failed for file/etc/services'; will try again later: No such file or directory nscd: 42 disabled inotify-based monitoring for file /etc/netgroup': No such file or directory nscd: 42 stat failed for file/etc/netgroup'; will try again later: No such file or directory nscd: 42 monitoring file /etc/nsswitch.conf (6) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/nsswitch.conf (6) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/nsswitch.conf (6) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/nsswitch.conf (6) nscd: 42 monitoring directory /etc (2) nscd: 42 monitoring file /etc/nsswitch.conf (6) nscd: 42 monitoring directory /etc (2) nscd: 42 /var/run/nscd/socket: No such file or directory child exited with status 1

mfrw commented 7 months ago

@navjotsinghji ack. Thanks for pointing this out and also providing repro steps. We will take a look and update.

mfrw commented 7 months ago

Hi @navjotsinghji

The Root-Cause seems to be the lack of /var/run/nscd directory in a container;

~Solution~ Workaround: Before we execute /usr/sbin/nscd; we should create the /var/* dir:

mkdir -p /var/run/nscd /var/db/nscd

The -p option makes this work irrespective of /var/.. dir being present or not. (maybe you may want to run the same script on a vm where these directories are present IMO)

image