Red Hat Bugzilla – Bug 23457
Syslog requries newer initscripts for 2.4
Last modified: 2016-11-24 09:49:42 EST
My machine is a RedHat 7.0 server install, updated with many Rawhide
components (all recompiled).
Under kernel 2.4 (.0-ac1, .0-0.43.11) syslogd (1.3.33-8) stalls during
bootup (but continues eventualy). This is rectified by installing a newer
initscripts (5.53-1). Should this be listed as a 'requires' somewhere? Or
are the newer initscripts masking other behaviour?
You wouldn't happen to be using NIS, would you?
Thanks for the hint: I looked into my /etc/nsswitch.conf, and found what I had
hosts: files nisplus nis dns
so I changed it to what I had expected (and used elsewhere, I use NIS for
sharing password files, I don't need it to do what DNS does better)
hosts: files dns [NOTFOUND=return] nisplus nis
I think this is related to my bug 23459, as previous to this the nisdomainname
was set in rc.sysint, now its set in init.d/ypbind - after syslog starts.
(Is this what you were thinking?)
BTW, I don't keep host info in my /etc/hosts file, only:
so thats why syslog does the DNS (and failed NIS) lookup
OK. The 2.4 kernel has a different behavior on unconnected UDP sockets;
before it would return 'connection refused', which wasn't technically correct.
What happens is that glibc sees that you have a NIS domain name set, so
it tries to talk to portmap; portmap isn't listening, so it sits there
waiting for a response. (with 2.2 it would get the 'connection refused'
The reason it doesn't hang with the new initscripts is that the new initscripts
don't set the NIS domain name at boot up; they leave it for the ypbind init
script to set.
It's not something that sysklogd really needs to require the new initscripts
for. I'll assign this to glibc, as that's the place the behavior needs to
change (basically, there is some new socket error reporting mechanism
that it can use.)
Should be fixed in glibc-2.2-12.