svn commit: r245525 - head/etc/rc.d
Bjoern A. Zeeb
bz at FreeBSD.org
Thu Jan 17 01:29:42 UTC 2013
On Thu, 17 Jan 2013, Bjoern A. Zeeb wrote:
> Author: bz
> Date: Thu Jan 17 01:27:39 2013
> New Revision: 245525
> URL: http://svnweb.freebsd.org/changeset/base/245525
>
> Log:
> Add a conditional sleep 1 in case we add any IPv6 addresses to interfaces.
> Do this per jail started, not per address. This will allow DAD to complete
> and services to properly start. Before we have seen problems with services
> trying to start before the IPv6 address was available to use and thus
> erroring and failing to start.
>
> MFC after: 3 days
Reviewed by: simon
Reported by: clusterad
Seen before by: myself (but never fixed it properly)
Samples of services seen starting up really fast and failing included
openldap's slapd and I think even apache.
>
> Modified:
> head/etc/rc.d/jail
>
> Modified: head/etc/rc.d/jail
> ==============================================================================
> --- head/etc/rc.d/jail Thu Jan 17 01:19:14 2013 (r245524)
> +++ head/etc/rc.d/jail Thu Jan 17 01:27:39 2013 (r245525)
> @@ -509,7 +509,7 @@ jail_handle_ips_option()
> esac
> case "${_type}" in
> inet) ;;
> - inet6) ;;
> + inet6) ipv6_address_count=$((ipv6_address_count + 1)) ;;
> *) warn "Could not determine address family. Not going" \
> "to ${_action} address '${_addr}' for ${_jail}."
> continue
> @@ -546,6 +546,7 @@ jail_ips()
> esac
>
> # Handle addresses.
> + ipv6_address_count=0
> jail_handle_ips_option ${_action} "${_ip}"
> # Handle jail_xxx_ip_multi<N>
> alias=0
> @@ -558,6 +559,12 @@ jail_ips()
> ;;
> esac
> done
> + case ${ipv6_address_count} in
> + 0) ;;
> + *) # Sleep 1 second to let DAD complete before starting services.
> + sleep 1
> + ;;
> + esac
> }
>
> jail_prestart()
>
--
Bjoern A. Zeeb You have to have visions!
Stop bit received. Insert coin for new address family.
More information about the svn-src-head
mailing list