libc NLS, NFS mounted /usr/local, DHCP, no default route causes hangs

Jilles Tjoelker jilles at stack.nl
Fri Apr 23 14:17:37 UTC 2010


The changes to use NLS for strerror sometimes cause one of my virtual
machines to deadlock. This virtual machine runs 9-CURRENT, acquires its
IP address via DHCP (virtualbox host-only networking), has no default
route and has /usr/local and /usr/home NFS mounted.

When the DHCP lease expires such as by resetting the date after a VM
save&restore, one of the route(8) commands executed by
dhclient-script(8) fails and calls strerror(3). Following the default
NLSPATH, catopen(3) looks in /usr/share/nls first; because the catalog
is not there it then tries in /usr/local/share/nls which deadlocks
because the network is not available.

I currently use the attached patch which returns failure on any attempt
to open a catalog for language "C", but I think this is not correct.
Am I using a configuration that is not supposed to work (NFS mounted
/usr/local with DHCP in particular), or should this be fixed in some
other way?

-- 
Jilles Tjoelker


More information about the freebsd-hackers mailing list