rpcbind doesn't start up, freezes during init. Manually skipping all rpc services allows bootup. Starting rpcbind manually after booting up freezes rpcbind Problem seems to be that the AF_INET socket that rpcbind ends up binding to is on a *random* port instead of the 111 portmapper port. Later when rpcbind itself attempts to send a packet, it sends it to port 111 which is not open. Adding rpcbind to /etc/services as an alias of 111 fixes the problem sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP Looking through the rpcbind code, it appears rpcbind is supposed to fallback to using the portmapper port if it can't one in /etc/services for rpcbind. Line 116: static char servname[] = "rpcbind"; Line 385: if ((aicode = getaddrinfo(hosts[nhostsbak], servname, &hints, &res)) != 0) { if ((aicode = getaddrinfo(hosts[nhostsbak], "portmapper", &hints, &res)) != 0) { However, it would appear that getaddrinfo is returning a 0 return value even when it couldn't find a port for "rpcbind" in /etc/services. According to the man page for getaddrinfo, it should return -1 with errno set to EAI_SERVICE or EAI_NONAME when the service cannot be found. Is this a glibc bug? Or is it a rpcbind bug? Also, rpcbind should probably be listed explicitly in /etc/services which is owned by the setup package. Possible resolutions: 1. Add rpcbind to the port 111 line in /etc/services 2a. Fix getaddrinfo to return -1 when the service is not found; if that is not considered a bug, 2b. Fix rpcbind to detect if getaddrinfo failed to find a suitable port some other way.
*** This bug has been marked as a duplicate of 236639 ***