From owner-freebsd-current@FreeBSD.ORG Fri Mar 27 23:33:01 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E2D8D21B for ; Fri, 27 Mar 2015 23:33:01 +0000 (UTC) Received: from munin.odin-corporation.com (173-161-46-1-Illinois.hfc.comcastbusiness.net [173.161.46.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Lars Fredriksen", Issuer "Lars Fredriksen" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 8247A905 for ; Fri, 27 Mar 2015 23:33:00 +0000 (UTC) Received: from larsmacmini.fredriksen.us (valhall.odin-corporation.com [173.161.46.2]) (authenticated bits=0) by munin.odin-corporation.com (8.14.5/8.14.5) with ESMTP id t2RNWwgR005969 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 27 Mar 2015 18:32:58 -0500 (CDT) (envelope-from lars@odin-corporation.com) From: Lars Subject: locking issue between igmp and route code in current? Message-Id: <49CA9057-E7E4-4AE2-A0DC-F31E7EF4D7A9@odin-corporation.com> Date: Fri, 27 Mar 2015 18:32:57 -0500 To: freebsd-current@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2093\)) X-Mailer: Apple Mail (2.2093) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Mar 2015 23:33:02 -0000 Hi, I realized that I hadn=E2=80=99t copied the other half of the locking = issue mentioned earlier.. Lars Mon Mar 23 12:42:15 CDT 2015 lock order reversal: 1st 0xfffff80003d62190 if_addr_lock (if_addr_lock) @ = /u/lars/sandbox/builds/current_10032015/sys/netinet/igmp.c:1714 2nd 0xffffffff80e387b0 ifnet_rw (ifnet_rw) @ = /u/lars/sandbox/builds/current_10032015/sys/net/if.c:243 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame = 0xfffffe0043faf6f0 witness_checkorder() at witness_checkorder+0xbe7/frame = 0xfffffe0043faf780 __rw_rlock() at __rw_rlock+0x5a/frame 0xfffffe0043faf820 ifnet_byindex() at ifnet_byindex+0x22/frame 0xfffffe0043faf840 igmp_intr() at igmp_intr+0x1d/frame 0xfffffe0043faf8c0 netisr_dispatch_src() at netisr_dispatch_src+0x61/frame = 0xfffffe0043faf930 igmp_v1v2_queue_report() at igmp_v1v2_queue_report+0x14b/frame = 0xfffffe0043faf980 igmp_fasttimo() at igmp_fasttimo+0x381/frame 0xfffffe0043fafa30 pffasttimo() at pffasttimo+0x54/frame 0xfffffe0043fafa60 softclock_call_cc() at softclock_call_cc+0x165/frame 0xfffffe0043fafb20 softclock() at softclock+0x3d/frame 0xfffffe0043fafb40 intr_event_execute_handlers() at intr_event_execute_handlers+0xb1/frame = 0xfffffe0043fafb70 ithread_loop() at ithread_loop+0x9c/frame 0xfffffe0043fafbb0 fork_exit() at fork_exit+0x71/frame 0xfffffe0043fafbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0043fafbf0 --- trap 0, rip =3D 0, rsp =3D 0xfffffe0043fafcb0, rbp =3D 0 --- lock order reversal: 1st 0xfffff80003d62190 if_addr_lock (if_addr_lock) @ = /u/lars/sandbox/builds/current_10032015/sys/netinet/igmp.c:1714 2nd 0xfffff800090d7be0 radix node head (radix node head) @ = /u/lars/sandbox/builds/current_10032015/sys/net/route.c:415 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame = 0xfffffe0043faf3f0 witness_checkorder() at witness_checkorder+0xbe7/frame = 0xfffffe0043faf480 __rw_rlock() at __rw_rlock+0x5a/frame 0xfffffe0043faf520 rtalloc1_fib() at rtalloc1_fib+0x60/frame 0xfffffe0043faf5d0 rtalloc_ign_fib() at rtalloc_ign_fib+0x98/frame 0xfffffe0043faf610 flowtable_lookup_common() at flowtable_lookup_common+0x1e6/frame = 0xfffffe0043faf6f0 flowtable_lookup() at flowtable_lookup+0x10f/frame 0xfffffe0043faf750 ip_output() at ip_output+0x87/frame 0xfffffe0043faf840 igmp_intr() at igmp_intr+0x2ed/frame 0xfffffe0043faf8c0 netisr_dispatch_src() at netisr_dispatch_src+0x61/frame = 0xfffffe0043faf930 igmp_v1v2_queue_report() at igmp_v1v2_queue_report+0x14b/frame = 0xfffffe0043faf980 igmp_fasttimo() at igmp_fasttimo+0x381/frame 0xfffffe0043fafa30 pffasttimo() at pffasttimo+0x54/frame 0xfffffe0043fafa60 softclock_call_cc() at softclock_call_cc+0x165/frame 0xfffffe0043fafb20 softclock() at softclock+0x3d/frame 0xfffffe0043fafb40 intr_event_execute_handlers() at intr_event_execute_handlers+0xb1/frame = 0xfffffe0043fafb70 ithread_loop() at ithread_loop+0x9c/frame 0xfffffe0043fafbb0 fork_exit() at fork_exit+0x71/frame 0xfffffe0043fafbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0043fafbf0 --- trap 0, rip =3D 0, rsp =3D 0xfffffe0043fafcb0, rbp =3D 0 --- panic: deadlkres: possible deadlock detected for 0xfffff8018245d000, = blocked for 1802208 ticks cpuid =3D 16 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame = 0xfffffe00cac40a80 vpanic() at vpanic+0x187/frame 0xfffffe00cac40b00 panic() at panic+0x43/frame 0xfffffe00cac40b60 deadlkres() at deadlkres+0x2fc/frame 0xfffffe00cac40bb0 fork_exit() at fork_exit+0x71/frame 0xfffffe00cac40bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00cac40bf0 --- trap 0, rip =3D 0, rsp =3D 0xfffffe00cac40cb0, rbp =3D 0 --- KDB: enter: panic