Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Apr 2013 22:09:00 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r249388 - stable/8/etc/rc.d
Message-ID:  <201304112209.r3BM90qo033763@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Thu Apr 11 22:08:59 2013
New Revision: 249388
URL: http://svnweb.freebsd.org/changeset/base/249388

Log:
  MFC r245525:
  
    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.

Modified:
  stable/8/etc/rc.d/jail
Directory Properties:
  stable/8/etc/   (props changed)

Modified: stable/8/etc/rc.d/jail
==============================================================================
--- stable/8/etc/rc.d/jail	Thu Apr 11 22:04:19 2013	(r249387)
+++ stable/8/etc/rc.d/jail	Thu Apr 11 22:08:59 2013	(r249388)
@@ -507,7 +507,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
@@ -544,6 +544,7 @@ jail_ips()
 	esac
 
 	# Handle addresses.
+	ipv6_address_count=0
 	jail_handle_ips_option ${_action} "${_ip}"
 	# Handle jail_xxx_ip_multi<N>
 	alias=0
@@ -556,6 +557,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_start()



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304112209.r3BM90qo033763>