Date: Thu, 22 May 2003 20:23:25 +0300 (EEST) From: "Kostik I. Belousov" <kostik@kib.kiev.ua> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/52585: Kernel panic with ipfw2 and syncookies Message-ID: <200305221723.h4MHNPiP000431@little.home> Resent-Message-ID: <200305221730.h4MHU6xR073045@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 52585
>Category: kern
>Synopsis: Kernel panic with ipfw2 and syncookies
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu May 22 10:30:03 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Kostik I. Belousov
>Release: FreeBSD 4.8-RELEASE i386
>Organization:
none
>Environment:
System: FreeBSD little.home 4.8-RELEASE FreeBSD 4.8-RELEASE #1: Fri May 2 18:08:25 EEST 2003 root@little.home:/usr/obj/usr/src/sys/LITTLE i386
sysctl
hw.machine: i386
hw.model: Pentium II/Pentium II Xeon/Celeron
hw.ncpu: 2
hw.byteorder: 1234
hw.physmem: 533917696
hw.usermem: 491724800
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: i386
hw.ata.ata_dma: 1
hw.ata.wc: 1
hw.ata.tags: 0
hw.ata.atapi_dma: 0
hw.instruction_sse: 0
hw.availpages: 130185
net.inet.tcp.syncookies: 1
net.inet.tcp.syncache.bucketlimit: 30
net.inet.tcp.syncache.cachelimit: 15359
net.inet.tcp.syncache.count: 0
net.inet.tcp.syncache.hashsize: 512
net.inet.tcp.syncache.rexmtlimit: 3
Kernel compiled with ipfw2.
>Description:
By adding/removing aliases and manipulating ipfw rules
(I caused the panic using ipfw fwd, see below), the kernel could
be paniced. The trace:
(kgdb) bt
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
#1 0xc0158847 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:316
#2 0xc0158cb9 in panic (fmt=0xc0291b19 "%s")
at /usr/src/sys/kern/kern_shutdown.c:595
#3 0xc024b459 in trap_fatal (frame=0xd3933cc0, eva=8)
at /usr/src/sys/i386/i386/trap.c:974
#4 0xc024b0c5 in trap_pfault (frame=0xd3933cc0, usermode=0, eva=8)
at /usr/src/sys/i386/i386/trap.c:867
#5 0xc024ac1f in trap (frame={tf_fs = 1644167192, tf_es = -1072234480,
tf_ds = -745340912, tf_edi = 1644167168, tf_esi = -1054094552,
tf_ebp = -745325300, tf_isp = -745325332, tf_ebx = -761024704,
tf_edx = -1070824920, tf_ecx = 0, tf_eax = -1, tf_trapno = 12,
tf_err = 0, tf_eip = -1071929334, tf_cs = 8, tf_eflags = 66198,
tf_esp = -761024704, tf_ss = -1050054796})
at /usr/src/sys/i386/i386/trap.c:466
#6 0xc01ba80a in syncache_insert (sc=0xd2a3af40, sch=0xc12bcb28)
at /usr/src/sys/netinet/tcp_syncache.c:302
#7 0xc01bb67c in syncache_add (inc=0xd3933db4, to=0xd3933e20, th=0xc1051950,
sop=0xd3933db0, m=0xc1051900) at /usr/src/sys/netinet/tcp_syncache.c:1021
#8 0xc01b5809 in tcp_input (m=0xc1051900, off0=20, proto=6)
at /usr/src/sys/netinet/tcp_input.c:826
#9 0xc01b026c in ip_input (m=0xc1051900)
at /usr/src/sys/netinet/ip_input.c:927
#10 0xc01b02cb in ipintr () at /usr/src/sys/netinet/ip_input.c:948
#11 0xc023c051 in swi_net_next ()
#12 0xc017a835 in connect (p=0xd3876be0, uap=0xd3933f80)
at /usr/src/sys/kern/uipc_syscalls.c:394
#13 0xc024b795 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
tf_edi = 135174508, tf_esi = -1077953148, tf_ebp = -1077953136,
tf_isp = -745324588, tf_ebx = 0, tf_edx = 134570369, tf_ecx = 135112576,
tf_eax = 98, tf_trapno = 22, tf_err = 2, tf_eip = 673579312, tf_cs = 31,
tf_eflags = 659, tf_esp = -1077953564, tf_ss = 47})
at /usr/src/sys/i386/i386/trap.c:1175
#14 0xc0237f5b in Xint0x80_syscall ()
#15 0x805b4b5 in ?? ()
#16 0x8059c0e in ?? ()
#17 0x805985f in ?? ()
#18 0x806e639 in ?? ()
#19 0x804c03a in ?? ()
(kgdb) frame 6
#6 0xc01ba80a in syncache_insert (sc=0xd2a3af40, sch=0xc12bcb28)
at /usr/src/sys/netinet/tcp_syncache.c:302
302 if (sc2 != NULL)
(kgdb) list
297 * first non-empty timer queue with the largest
298 * timeout value.
299 */
300 for (i = SYNCACHE_MAXREXMTS; i >= 0; i--) {
301 sc2 = TAILQ_FIRST(&tcp_syncache.timerq[i]);
302 if (sc2 != NULL)
303 break;
304 }
305 sc2->sc_tp->ts_recent = ticks;
306 syncache_drop(sc2, NULL);
>How-To-Repeat:
ifconfig lo0 192.168.2.1 alias
ipfw 50 add fwd 192.168.2.1,23 tcp from any to 192.168.2.1
some time ...
ipfw del 50
ifconfig lo0 192.168.2.1 remove
some more time ...
attempt to make tcp connection to the machine panics the kernel
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305221723.h4MHNPiP000431>
