• David Johnson's avatar
    Workaround dhclient/resolvconf problem in Ubuntu 16. · c2bd98f6
    David Johnson authored
    This replaces the first attempt, which just masked the race condition,
    since I didn't understand what tmcc bossinfo was really doing.  This
    appears to fix it satisfactorily for now; it doesn't seem that we will
    run into the case where the file exists but has no nameserver.
    
      resolvconf on Linux also breaks DNS momentarily via dhclient exit
      hook, or something.  On Ubuntu 16, resolvconf is setup to run via
      dhclient enter hook (the hook redefines make_resolv_conf, which
      dhclient-script eventually executes prior to the exit hook execution).
      For whatever reason, though, sometimes when our exit hook (this
      script) runs, /etc/resolv.conf is a dangling symlink.  I was not able
      to find the source of the asynch behavior, so I can't say for sure.
      But sethostname.dhclient is an immediate casualty, because it calls
      tmcc bossinfo(), and the tmcc binary attempts to use res_init and read
      the resolver and use that as boss.  If there is no /etc/resolv.conf
      (or it is a broken symlink into /run, as it is on resolvconf systems
      before resolvconf runs for the first time on boot), res_init will
      return localhost, and there is no way for us in tmcc to know that is
      inappropriate (taking the res_init resolver might not be the best
      choice, but we do not dare to add a special-case rejection of
      localhost in tmcc).
    c2bd98f6
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
apt Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
autofs Loading commit data...
backend Loading commit data...
bugdb Loading commit data...
cdrom Loading commit data...
clientside Loading commit data...
collab Loading commit data...
daikon Loading commit data...
db Loading commit data...
delay Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
flash Loading commit data...
fwrules Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
image-test Loading commit data...
install Loading commit data...
ipod Loading commit data...
mobile Loading commit data...
mote Loading commit data...
named Loading commit data...
node_usage Loading commit data...
ntpd Loading commit data...
os Loading commit data...
patches Loading commit data...
pelab Loading commit data...
protogeni Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.loc-ignore Loading commit data...
AGPL-COPYING Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
MOVED-TO-WIKI Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
VERSION Loading commit data...
WEBtemplate.in Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...
defs-apt Loading commit data...
defs-cloudlab-clemson Loading commit data...
defs-cloudlab-utah Loading commit data...
defs-cloudlab-wisc Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-gtw-emulab Loading commit data...
defs-johnsond-emulab Loading commit data...
defs-kwebb-apt Loading commit data...
defs-kwebb-cloudlab Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-mike-emulab Loading commit data...
defs-ricci-emulab Loading commit data...
defs-stoller-apt Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-utahclient Loading commit data...
defs-wbsun-emulab Loading commit data...
defs-wide Loading commit data...
pnet-favicon.ico Loading commit data...