I changed the system to hup a while back. I was having the same problems. At that time I never ran into the leases problem, but recently I did have problem with it as well.
The workaround I'm testing right now is to set a restart flag is the ip or mac was found in the leases file and do a restart instead of a HUP if that flag is set. Not the neatest of solutions but it work fine. Now I only get the occasional error because of the DNS timeout instead of a constant problem. Dennis' solution looks a lot nicer. Cheers, Hugo > -----Original Message----- > From: Marcus Sorensen [mailto:shadow...@gmail.com] > Sent: Wednesday, May 01, 2013 10:51 PM > To: dev@cloudstack.apache.org > Subject: Re: Virtual Router: DHCP and 2-second DNS outages > > What is scripts/network/exdhcp/dnsmasq_edithosts.sh ? > > I noticed that master is already patched to hup, but it's missing the > dhcp_release that dennis just put in a review for. > > > On Wed, May 1, 2013 at 1:43 PM, Marcus Sorensen <shadow...@gmail.com> > wrote: > > > oops, minus my two 'echo' debugging lines in there > > > > > > > > On Wed, May 1, 2013 at 1:41 PM, Marcus Sorensen > <shadow...@gmail.com>wrote: > > > >> I'm not sure how we'd handle older versions if they don't have the > >> dhcp_release util, but how about this going forward? > >> > >> diff --git a/patches/systemvm/debian/config/root/edithosts.sh > >> b/patches/systemvm/debian/config/root/edithosts.sh > >> index 9f21f20..f6e09d6 100755 > >> --- a/patches/systemvm/debian/config/root/edithosts.sh > >> +++ b/patches/systemvm/debian/config/root/edithosts.sh > >> @@ -71,6 +71,7 @@ DHCP_HOSTS=/etc/dhcphosts.txt > >> DHCP_OPTS=/etc/dhcpopts.txt > DHCP_LEASES=/var/lib/misc/dnsmasq.leases > >> HOSTS=/etc/hosts > >> +ROUTER_VERSION=$(cat /etc/debian_version | cut -d. -f1) > >> > >> source /root/func.sh > >> > >> @@ -99,6 +100,14 @@ wait_for_dnsmasq () { > >> > >> logger -t cloud "edithosts: update $1 $2 $3 to hosts" > >> > >> +if [ $ROUTER_VERSION -gt 6 ] > >> +then > >> + #release previous dhcp lease if present > >> + echo releasing $ipv4 > >> + dhcp_release lo $ipv4 $(grep $ipv4 $DHCP_LEASES | awk '{print > >> +$2}') > >> >/dev/null 2>&1 > >> + echo released $ipv4 > >> +fi > >> + > >> [ ! -f $DHCP_HOSTS ] && touch $DHCP_HOSTS [ ! -f $DHCP_OPTS ] && > >> touch $DHCP_OPTS [ ! -f $DHCP_LEASES ] && touch $DHCP_LEASES @@ > >> -200,7 +209,12 @@ fi pid=$(pidof dnsmasq) if [ "$pid" != "" ] then > >> - service dnsmasq restart > >> + if [ $ROUTER_VERSION -gt 6 ] > >> + then > >> + kill -s 1 $pid > >> + else > >> + service dnsmasq restart > >> + fi > >> else > >> if [ $no_redundant -eq 1 ] > >> then > >> > >> > >> > >> > >> On Wed, May 1, 2013 at 12:33 PM, Chip Childers > >> <chip.child...@sungard.com > >> > wrote: > >> > >>> On Wed, May 01, 2013 at 12:29:32PM -0600, Marcus Sorensen wrote: > >>> > How do we go about requesting that dnsmasq-utils be installed on > >>> > the > >>> new > >>> > system VM? > >>> > >>> The code to create system VMs is in the repo now. You should be > >>> able to just make the change and / or submit a patch suggesting the > change. > >>> > >>> See: > >>> > >>> tools/appliance/definitions > >>> > >> > >> > >