From owner-freebsd-bugs@FreeBSD.ORG Thu Dec 6 15:00:01 2012 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF6A335F for ; Thu, 6 Dec 2012 15:00:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 848458FC14 for ; Thu, 6 Dec 2012 15:00:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id qB6F01wa047048 for ; Thu, 6 Dec 2012 15:00:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id qB6F01Rh047047; Thu, 6 Dec 2012 15:00:01 GMT (envelope-from gnats) Resent-Date: Thu, 6 Dec 2012 15:00:01 GMT Resent-Message-Id: <201212061500.qB6F01Rh047047@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Lutz Donnerhacke Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A95762A9 for ; Thu, 6 Dec 2012 14:50:06 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 8F9DB8FC19 for ; Thu, 6 Dec 2012 14:50:06 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id qB6Eo5kG046263 for ; Thu, 6 Dec 2012 14:50:05 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id qB6Eo5d3046262; Thu, 6 Dec 2012 14:50:05 GMT (envelope-from nobody) Message-Id: <201212061450.qB6Eo5d3046262@red.freebsd.org> Date: Thu, 6 Dec 2012 14:50:05 GMT From: Lutz Donnerhacke To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: kern/174236: "kldunload ipdivert" corrupts kernel X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 15:00:01 -0000 >Number: 174236 >Category: kern >Synopsis: "kldunload ipdivert" corrupts kernel >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Dec 06 15:00:00 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Lutz Donnerhacke >Release: FreeBSD 8.3-RELEASE (GENERIC) >Organization: IKS Service GmbH >Environment: FreeBSD server6 8.3-RELEASE FreeBSD 8.3-RELEASE #0: Mon Apr 9 21:23:18 UTC 2012 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: After unsuccessful kldunload of ipdivert.ko, all kernel module maintainence operations block. >How-To-Repeat: Reboot the server to a fresh state. In short: # kldload ipfw # kldload ipdivert # kldunload ipdivert # kldstat {hangs] And now the glory details: [root@server6 ~]# cat /boot/loader.conf aacu64_load="YES" if_lagg_load="YES" net.inet.ip.fw.default_to_accept=1 ipfw_load="YES" ipfw_nat_load="YES" [root@server6 ~]# grep firewall /etc/rc.conf firewall_enable="YES" firewall_type="/etc/firewall.rules" [root@server6 ~]# cat /etc/firewall.rules -f flush # defining NAT pools nat 128 config ip x.y.z.128 log same_ports [... same up to ...] nat 159 config ip x.y.z.159 log same_ports # active ruleset add 10 deny log ip4 from any to any not verrevpath in add 1128 nat 128 ipv4 from 100.64.0.0:255.192.0.31 to any out [... same up to ...] add 1159 nat 159 ipv4 from 100.64.0.31:255.192.0.31 to any out add 2128 nat 128 ip4 from any to x.y.z.128 [... same up to ...] add 2159 nat 159 ip4 from any to x.y.z.159 # Diverting dhpcv6 in future # add 9000 divert 12345 ipv6 from fe80::/16 to ff02::1:2 via ng* in # Allow everything add 9999 allow all from any to any [root@server6 ~]# kldstat Id Refs Address Size Name 1 34 0xffffffff80100000 e56d68 kernel 2 2 0xffffffff80f57000 1a3e0 ipfw.ko 3 1 0xffffffff80f72000 192b0 aacu64.ko 4 1 0xffffffff80f8c000 c470 if_lagg.ko 5 1 0xffffffff80f99000 4088 ipfw_nat.ko 6 2 0xffffffff80f9e000 14320 libalias.ko 7 1 0xffffffff81012000 1e2c ng_socket.ko 8 7 0xffffffff81014000 8d38 netgraph.ko 9 1 0xffffffff8101d000 186a ng_mppc.ko 10 1 0xffffffff8101f000 28c rc4.ko 11 1 0xffffffff81020000 2a08 ng_l2tp.ko 12 1 0xffffffff81023000 2080 ng_ksocket.ko 13 1 0xffffffff81026000 aa8 ng_tee.ko 14 1 0xffffffff81027000 13b0 ng_iface.ko 15 1 0xffffffff81029000 45e8 ng_ppp.ko [root@server6 ~]# kldload ipdivert [root@server6 ~]# kldstat Id Refs Address Size Name 1 36 0xffffffff80100000 e56d68 kernel 2 3 0xffffffff80f57000 1a3e0 ipfw.ko 3 1 0xffffffff80f72000 192b0 aacu64.ko 4 1 0xffffffff80f8c000 c470 if_lagg.ko 5 1 0xffffffff80f99000 4088 ipfw_nat.ko 6 2 0xffffffff80f9e000 14320 libalias.ko 7 1 0xffffffff81012000 1e2c ng_socket.ko 8 7 0xffffffff81014000 8d38 netgraph.ko 9 1 0xffffffff8101d000 186a ng_mppc.ko 10 1 0xffffffff8101f000 28c rc4.ko 11 1 0xffffffff81020000 2a08 ng_l2tp.ko 12 1 0xffffffff81023000 2080 ng_ksocket.ko 13 1 0xffffffff81026000 aa8 ng_tee.ko 14 1 0xffffffff81027000 13b0 ng_iface.ko 15 1 0xffffffff81029000 45e8 ng_ppp.ko 16 1 0xffffffff8102e000 1649 ipdivert.ko [root@server6 ~]# kldunload ipdivert kldunload: can't unload file: Operation not permitted [root@server6 ~]# kldstat Id Refs Address Size Name [hangs] load: 0.00 cmd: kldstat 15366 [kernel linker] 98.04r 0.00u 0.00s 0% 1052k Logging into the maschine again again. [root@server6 ~]# ps ax | grep 1536[6] 15366 0 T+ 0:00.00 kldstat [root@server6 ~]# procstat -k 15366 PID TID COMM TDNAME KSTACK [hangs] Even "procstat"ing the hanging procstat hangs. >Fix: Reboot >Release-Note: >Audit-Trail: >Unformatted: