From owner-freebsd-net@freebsd.org Fri Nov 25 16:05:00 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23689C5495D for ; Fri, 25 Nov 2016 16:05:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 13247CED for ; Fri, 25 Nov 2016 16:05:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id uAPG4xPo069720 for ; Fri, 25 Nov 2016 16:04:59 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 213410] [carp] service netif restart causes hang only when carp is enabled Date: Fri, 25 Nov 2016 16:04:59 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 11.0-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: kp@freebsd.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Nov 2016 16:05:00 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213410 Kristof Provost changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kp@freebsd.org --- Comment #1 from Kristof Provost --- I=E2=80=99ve had a very quick look, and at first glance it seems like an ov= erly strict KASSERT() more than anything else. Basically, during service netif restart the scripts try to set up carp on an address that=E2=80=99s already got it configured. That runs into the assert= and panics the box (or actually panics later on if INVARIANTS is not set). Simply replacing the KASSERT with a check (and returning errors) prevents t= he panic. I don=E2=80=99t have a carp test setup, but this should make things a lot b= etter already. Can you check if this works for you? diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c index 7855af2..ea27f0a 100644 --- a/sys/netinet/ip_carp.c +++ b/sys/netinet/ip_carp.c @@ -1804,7 +1804,8 @@ carp_attach(struct ifaddr *ifa, int vhid) struct carp_softc *sc; int index, error; - KASSERT(ifa->ifa_carp =3D=3D NULL, ("%s: ifa %p attached", __func__= , ifa)); + if (ifa->ifa_carp !=3D NULL) + return (EBUSY); switch (ifa->ifa_addr->sa_family) { #ifdef INET --=20 You are receiving this mail because: You are the assignee for the bug.=