Bug#638322: nfs-common: rpc.statd binds to udp port 631 preventing cups startup
On Thu, 18 Aug 2011, Ben Hutchings wrote:
On Thu, Aug 18, 2011 at 05:39:16PM +0200, Jan Möbius wrote:
sometimes rpc.statd binds to port 631 udp which is used by cups. Therefore cups is unable to bind to its port and no printers get discovered.
Rebooting the system helps as rpc.statd uses another port afterwards.
This is a fundamental problem of the bindresvport() function, and
not specific to rpc.statd. Reassigning to general.
Sure, bindresvport is archaic, but workarounds already exist. In
particular, Debian already adds /etc/bindresvport.blacklist and the
default already contains port 631. Does the submitter have this
file in place with the default contents?
The 'portreserve' package provides a kluge to avoid this, but it
requires other packages to register the ports that must be reserved.
It also won't work reliably, because insserv runs init scripts in
parallel and there is thus a race condition in the way services claim
their ports from the portreserve daemon.
That seems like a much worse kluge than the existing blacklist. Allowing
packages to register reserved ports however seems a useful feature.
Reassign to eglibc as request for supporting /etc/bindresvport.blacklist.d ?
A proper fix probably involves using systemd's socket-activation.
Yes, I said systemd - which presumably means we'll have to wait
another 5 years for this to be fixed.
Irrelevant. Promoting systemd for its side-effect as an amelioration for an
ureliable kluge is not a strong argument. ;) 
 Not intended as an argument against systemd either.