[Bug 1007273] Re: autofs does not start automatically after reboot
Andreas Greve
1007273 at bugs.launchpad.net
Wed Jan 16 14:12:42 UTC 2013
If the automounter daemon starts before the ypbind daemon is ready to
answer queries than the automounter does not work for nfs mounts
depending on nis (other mount types not tested), even if the ypbind
daemon later gets ready.
There exists a race condition in ubuntu 12.04 between autofs.conf and ypbind.conf which leads to the above described problem.
The reason for that is that ypbind.conf sometimes lies about the state
of the ypbind daemon. The post-start script in ypbind.conf terminates
after 5 tries ( about 5 sec.) to contact the nis-server or when ypbind
respawns and change its state to running. Upstart than kills the
dedicated wait-for-state job. Now autofs.conf starts the automounter
daemon but the ypbind daemon is not ready to work and the automounter
does not work for nfs automounts too. I have to restart the automounter
daemon manualy (stop autofs; start autofs) after the ypbind daemon is
working to get nfs automounts working.
I solve the problem by changing ypbind.conf so that the "test loop" in
post-start script only terminates when ypwhich is working.
Additional I add a parameter TIMEOUT=300 to the exec wait-for-state .... call in start-ypbind.conf because the default default timeout of 30 sec is to short for my network and leads to the above described problem.
OK the 5min time out is not a 100% resolution. For a 100% resolution of the race condition I have to set the parameter WAIT_FOREVER="T".
autofs.conf:
-------------------vvv snip vvvv----------------------------------
description "NIS binding process"
author "Steve Langasek <steve.langasek at canonical.com>"
# Patterned after the statd.conf job in nfs-common.
start on (started portmap ON_BOOT=
or (started portmap ON_BOOT=y
and ((filesystem and static-network-up) or failsafe-boot)))
stop on stopping portmap or runlevel [!2345]
expect daemon
respawn
respawn limit 3 250
pre-start script
NISSERVER=false
[ -f /usr/sbin/ypbind ] && [ -f /etc/defaultdomain ] || { stop; exit
0; }
[ -f /etc/default/nis ] && . /etc/default/nis
oname=$(domainname)
nname=$(cat /etc/defaultdomain)
if [ "$oname" != "$nname" ]; then
echo "Setting NIS domainname to: $nname"
domainname "$nname"
fi
case $NISSERVER in
master|slave|[Yy]*)
;;
*)
case $NISCLIENT in
false|[nN]*)
{ stop; exit 0; }
;;
esac
;;
esac
if [ "$NISSERVER" != false ]; then
start wait-for-state WAIT_FOR=ypserv WAITER=ypbind WAIT_STATE=running >/dev/null
fi
end script
script
[ -f /etc/default/nis ] && . /etc/default/nis
BROADCAST=-broadcast
while read arg junk ; do
case $arg in
ypserver|domain)
BROADCAST=
;;
esac
done < /etc/yp.conf
exec ypbind $BROADCAST $YPBINDARGS
end script
post-start script
# Give ypbind time to finish starting up, so that jobs depending on
# it are actually able to use the maps
echo -n "Binding to YP server "
bound=
#for i in 1 2 3 4 5
while [ -z "${bound}" ]
do
echo -n "."
#if status ypbind | grep -q start/respawn; then
# # something killed ypbind; short-circuit here instead
# # of continuing to try to call ypwhich, since that
# # can take more than a minute.
# break
#fi
if [ "$(ypwhich 2>/dev/null)" != "" ]; then
bound=1
break
fi
sleep 3
done
if [ "$bound" ]; then
echo "done"
echo "$(date) ypbind is running"
sleep 5
#else
# echo "backgrounded"
fi
end script
---------------^^^ snip ^^^-----------------------------------
start-ypbind.conf:
-------------------vvv snip vvvv----------------------------------
description "block processes that need ypbind"
author "Steve Langasek <steve.langasek at canonical.com>"
instance $JOB
env JOB=
start on (starting autofs or starting am-utils or starting gdm
or starting lightdm or starting atd)
task
exec start wait-for-state WAITER="$JOB" WAIT_FOR=ypbind WAIT_STATE=running TIMEOUT=300
---------------^^^ snip ^^^----------------------------------
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to autofs5 in Ubuntu.
https://bugs.launchpad.net/bugs/1007273
Title:
autofs does not start automatically after reboot
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/autofs5/+bug/1007273/+subscriptions
More information about the Ubuntu-server-bugs
mailing list