kern/138666: Do not working multicast through igmpproxy

From: Vladislav V. Prodan <universite_at_ukr.net>
Date: Wed, 09 Sep 2009 17:43:53 +0300
>Number:         138666
>Category:       kern
>Synopsis:       Do not working multicast through igmpproxy
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 09 14:40:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Vladislav V. Prodan
>Release:        FreeBSD 8.0-BETA4 #0: Wed Sep  9 00:53:41 EEST 2009 amd64
>Organization:
>Environment:
FreeBSD mary-teresa.otrada.od.ua 8.0-BETA4 FreeBSD 8.0-BETA4 #0: Wed Sep 
  9 00:53:41 EEST 2009 
vlad11_at_mary-teresa.otrada.od.ua:/usr/obj/usr/src/sys/mary-teresa.17  amd64

>Description:
Fatal trap 9: general protection fault while in kernel mode
cpuid = 0; apic id = 00
instruction pointer     = 0x20:0xffffffff803fbed5
stack pointer           = 0x28:0xffffff8000041ab0
frame pointer           = 0x28:0xffffff8000041ad0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                         = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 12 (swi4: clock)
trap number             = 9
panic: general protection fault
cpuid = 0
Uptime: 2h38m8s
Physical memory: 6098 MB
Dumping 1653 MB: 1638 1622 1606 1590 1574 1558 1542 1526 1510 1494 1478 
1462 1446 1430 1414 1398 1382 1366 1350 1334 1318 1302 1286 1270 1254 
1238 1222 1206 1190 1174 1158 1142 1126 1110 1094 1078 1062 1046 1030 
1014 998 982 966 950 934 918 902 886 870 854 838 822 806 790 774 758 742 
726 710 694 678 662 646 630 614 598 582 566 550 534 518 502 486 470 454 
438 422 406 390 374 358 342 326 310 294 278 262 246 230 214 198 182 166 
150 134 118 102 86 70 54 38 22 6

Reading symbols from /boot/kernel/zfs.ko...Reading symbols from 
/boot/kernel/zfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/zfs.ko
Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols from 
/boot/kernel/opensolaris.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/opensolaris.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from 
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/accf_http.ko...Reading symbols from 
/boot/kernel/accf_http.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/accf_http.ko
#0  doadump () at pcpu.h:223
223             __asm __volatile("movq %%gs:0,%0" : "=r" (td));
(kgdb) bt
#0  doadump () at pcpu.h:223
#1  0xffffffff803a5219 in boot (howto=260) at 
/usr/src/sys/kern/kern_shutdown.c:416
#2  0xffffffff803a566c in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:579
#3  0xffffffff8065e30d in trap_fatal (frame=0x9, eva=Variable "eva" is 
not available.
) at /usr/src/sys/amd64/amd64/trap.c:852
#4  0xffffffff8065ee4a in trap (frame=0xffffff8000041a00) at 
/usr/src/sys/amd64/amd64/trap.c:639
#5  0xffffffff80645463 in calltrap () at 
/usr/src/sys/amd64/amd64/exception.S:224
#6  0xffffffff803fbed5 in m_freem (mb=0xc9e5894807b70f55) at 
/usr/src/sys/kern/uipc_mbuf.c:160
#7  0xffffffff804d9e92 in expire_mfc (rt=0xffffff01420d4b00) at 
/usr/src/sys/netinet/ip_mroute.c:1031
#8  0xffffffff804db344 in expire_upcalls (unused=Variable "unused" is 
not available.
) at /usr/src/sys/netinet/ip_mroute.c:1457
#9  0xffffffff803b7dc1 in softclock (arg=Variable "arg" is not available.
) at /usr/src/sys/kern/kern_timeout.c:411
#10 0xffffffff8037f380 in intr_event_execute_handlers (p=Variable "p" is 
not available.
) at /usr/src/sys/kern/kern_intr.c:1165
#11 0xffffffff803808fe in ithread_loop (arg=0xffffff0001392660) at 
/usr/src/sys/kern/kern_intr.c:1178
#12 0xffffffff8037d387 in fork_exit (callout=0xffffffff80380870 
<ithread_loop>, arg=0xffffff0001392660,
     frame=0xffffff8000041c80) at /usr/src/sys/kern/kern_fork.c:843
#13 0xffffffff8064593e in fork_trampoline () at 
/usr/src/sys/amd64/amd64/exception.S:561
#14 0x0000000000000000 in ?? ()
#15 0x0000000000000000 in ?? ()
#16 0x0000000000000001 in ?? ()
#17 0x0000000000000000 in ?? ()
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000000 in ?? ()
#20 0x0000000000000000 in ?? ()
#21 0x0000000000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x0000000000000000 in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x0000000000000000 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000000000000 in ?? ()
#28 0x0000000000000000 in ?? ()
#29 0x0000000000000000 in ?? ()
---Type <return> to continue, or q <return> to quit---
#30 0x0000000000000000 in ?? ()
#31 0x0000000000000000 in ?? ()
#32 0x0000000000000000 in ?? ()
#33 0x0000000000000000 in ?? ()
#34 0x0000000000000000 in ?? ()
#35 0x0000000000000000 in ?? ()
#36 0x0000000000000000 in ?? ()
#37 0x0000000000000000 in ?? ()
#38 0x0000000000c6d000 in ?? ()
#39 0x000000000000000b in ?? ()
#40 0xffffffff808cf500 in affinity ()
#41 0xffffffff808cf500 in affinity ()
#42 0xffffff000150d720 in ?? ()
#43 0xffffff8000041240 in ?? ()
#44 0xffffff80000411f8 in ?? ()
#45 0xffffff00013a7390 in ?? ()
#46 0xffffffff803c8159 in sched_switch (td=0xffffff0001392660, 
newtd=0xffffffff80380870, flags=Variable "flags" is not available.
)
     at /usr/src/sys/kern/sched_ule.c:1858
Previous frame inner to this frame (corrupt stack?)


Igmpproxy (/usr/ports/net/igmpproxy) logs:

Sep  9 16:56:18 mary-teresa igmpproxy: Debu: Packet from 10.0.0.1: 
proto: 2 hdrlen: 24 iplen: 8 or 2048
Sep  9 16:56:18 mary-teresa igmpproxy: Note: RECV V2 member report 
from 10.0.0.1        to 224.0.0.2 (ip_hl 24, data 8)
Sep  9 16:56:18 mary-teresa igmpproxy: Note: The IGMP message was from 
myself. Ignoring.
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: Packet from 10.0.0.10: 
proto: 2 hdrlen: 24 iplen: 8 or 2048
Sep  9 16:56:19 mary-teresa igmpproxy: Note: RECV Leave message 
from 10.0.0.10       to 224.0.0.2 (ip_hl 24, data 8)
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: Got leave message from 
10.0.0.10 to 239.0.1.41. Starting last member detection.
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: SENT Membership query 
from 10.0.0.1        to 239.0.1.41
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: Sent membership query from 
10.0.0.1 to 239.0.1.41. Delay: 10
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: Created timeout 14 (#1) - 
delay 4 secs
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: (Id:12, Time:6)
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: (Id:14, Time:4)
Sep  9 16:56:19 mary-teresa igmpproxy: Debu: (Id:13, Time:111)
Sep  9 16:56:24 mary-teresa igmpproxy: Debu: About to call timeout 12 (#0)
Sep  9 16:56:24 mary-teresa igmpproxy: Debu: Aging routes in table.
Sep  9 16:56:24 mary-teresa igmpproxy: Debu:  Current routing table (Age 
active routes); -----------------------------------------------------
Sep  9 16:56:24 mary-teresa igmpproxy: Debu: No routes in table...
Sep  9 16:56:24 mary-teresa igmpproxy: Debu: 
-----------------------------------------------------
Sep  9 16:56:28 mary-teresa igmpproxy: Debu: About to call timeout 14 (#0)
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: Route activate request from 
10.0.0.10 to 239.192.152.143, downIf -1
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: No table entry for 
239.192.152.143 [From: 10.0.0.10]. Inserting route.
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: No existing route for 
239.192.152.143. Create new.
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: No routes in table. Insert 
at beginning.
Sep  9 16:56:32 mary-teresa igmpproxy: Info: Inserted route table entry 
for 239.192.152.143 on VIF #-1
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: No downstream listeners for 
group 239.192.152.143. No join sent.
Sep  9 16:56:32 mary-teresa igmpproxy: Debu:  Current routing table 
(Insert Route); -----------------------------------------------------
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: #0: Dst: 239.192.152.143, 
Age:2, St: I, OutVifs: 0x00000000
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: 
-----------------------------------------------------
Sep  9 16:56:32 mary-teresa igmpproxy: Note: New origin for route 
239.192.152.143 is 10.0.0.10, flood -1
Sep  9 16:56:32 mary-teresa igmpproxy: Debu:  Current routing table 
(Activate Route); -----------------------------------------------------
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: #0: Dst: 239.192.152.143, 
Age:2, St: A, OutVifs: 0x00000000
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: #0: Origin: 10.0.0.10 
floodIf -1 pktcnt 0
Sep  9 16:56:32 mary-teresa igmpproxy: Debu: 
-----------------------------------------------------

239.192.152.143 - multicast TV
10.0.0.1 - freebsd, local network interface
10.0.0.10 - windows XP, running TV-player

kernel mrouting included:
options         MROUTING                # Multicast routing


>How-To-Repeat:

1\ install Igmpproxy (/usr/ports/net/igmpproxy)
2\ run Igmpproxy
3\ a couple of times to switch channels
4\ after 5 minutes will be a stable kernel panic

I suspect the problem in the routes, both for work with local 
interfaces, and for multicast.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:
Received on Wed Sep 09 2009 - 12:44:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:55 UTC