[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

kernel/2172: crash and freeze, maybe pf and/or ip6 related




>Number:         2172
>Category:       kernel
>Synopsis:       crash and freeze, maybe pf and/or ip6 related
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Nov  7 21:30:01 MST 2001
>Last-Modified:
>Originator:     Clay Caviness
>Organization:
net
>Release:        -current (nov 4)
>Environment:
	System      : OpenBSD 3.0
	Architecture: OpenBSD.i386
	Machine     : i386
>Description:
my machine is freezing every 2 days or so (this is the third crash in the past week)
with the message "panic: m_copydata: off -1 < 0"

looks to my extremely untrained eye to be pf and/or ipv6 related. i have an ipv6 
tunnel provided by he.net, but haven't added any pf rules specific to it.

i have the crash dump saved, so i can do any other diagnostics needed.

here is the trace:
(gdb) target kcore bsd.0.core
panic: m_copydata: off -1 < 0
#0  0x1000 in ?? ()
(gdb) where
#0  0x1000 in ?? ()
#1  0xe02d1db9 in boot ()
#2  0xe017ee07 in db_boot_dump_cmd ()
#3  0xe017e9b0 in db_command ()
#4  0xe017ec33 in db_command_loop ()
#5  0xe0181eb6 in db_trap ()
#6  0xe02ccf62 in kdb_trap ()
#7  0xe02dab24 in trap ()
#8  0xe0100db9 in alltraps ()
#9  0xe01b18c9 in panic ()
#10 0xe01c1c80 in m_copydata ()
#11 0xe0176d9a in pf_pull_hdr ()
#12 0xe0176766 in pf_test_state_icmp ()
#13 0xe017783f in pf_test6 ()
#14 0xe02b6b12 in ip6_input ()
#15 0xe02b69af in ip6intr ()
#16 0xe010203e in Xsoftnet ()
(gdb)

here is ps (it's long)
{clay@scootch}[/var/crash]$ sudo ps kaux -M bsd.0.core 
USER       PID %CPU %MEM   VSZ   RSS TT   STAT STARTED       TIME COMMAND
cyrus    23946  0.0  0.0  4440     0 ??  Is     6:30PM    0:00.26 (imapd)
root         0  0.0  0.0     0     0 ??  DKLs  Mon09AM    0:00.07 (swapper)
root         1  0.0  0.0   332     0 ??  Is    Mon09AM    0:00.10 (init)
root         2  0.0  0.0     0     0 ??  DKL   Mon09AM    0:00.01 (pagedaemon)
root         3  0.0  0.0     0     0 ??  DKL   Mon09AM    0:00.70 (reaper)
root         4  0.0  0.0     0     0 ??  DKL   Mon09AM    0:00.04 (cleaner)
root         5  0.0  0.0     0     0 ??  RKL   Mon09AM    0:08.39 (update)
root         6  0.0  0.0     0     0 ??  DKL   Mon09AM    0:00.01 (crypto)
root         7  0.0  0.0     0     0 ??  RKL   Mon09AM    0:01.04 (apm0)
root         8  0.0  0.0     0     0 ??  DKL   Mon09AM    0:00.01 (usb0)
root     22272  0.0  0.0   100     0 ??  Rs    Mon09AM    0:01.18 (syslogd)
root      7096  0.0  0.0   328     0 ??  Rs    Mon09AM    0:05.25 (pflogd)
named     5807  0.0  0.0  1060     0 ??  Rs    Mon09AM    0:08.04 (named)
root     10238  0.0  0.0    64     0 ??  Is    Mon09AM    0:00.00 (portmap)
root     22681  0.0  0.0   356     0 ??  Is    Mon09AM    0:00.01 (mountd)
root      7005  0.0  0.0   124     0 ??  Is    Mon09AM    0:00.00 (nfsd)
root      1338  0.0  0.0   108     0 ??  IL    Mon09AM    0:00.00 (nfsd)
root     14368  0.0  0.0   108     0 ??  IL    Mon09AM    0:29.95 (nfsd)
root      3197  0.0  0.0   108     0 ??  IL    Mon09AM    0:00.00 (nfsd)
root     32152  0.0  0.0   108     0 ??  IL    Mon09AM    0:00.14 (nfsd)
root     19352  0.0  0.0   232     0 ??  Ss    Mon09AM    0:00.22 (dhcpd)
root     24511  0.0  0.0  1356     0 ??  Rs    Mon09AM    0:04.40 (httpd)
root      5694  0.0  0.0    80     0 ??  Is    Mon09AM    0:00.31 (inetd)
root     13281  0.0  0.0   332     0 ??  Is    Mon09AM    0:02.89 (sshd)
root     23220  0.0  0.0   636     0 ??  Ss    Mon09AM    0:05.57 (ntpd)
root      4305  0.0  0.0   388     0 C0- I     Mon09AM    0:00.02 (sh)
mysql    15709  0.0  0.0 11568     0 C0- I     Mon09AM    0:12.81 (mysqld)
root     22738  0.0  0.0  4076     0 ??  Rs    Mon09AM    3:23.23 (snort)
root     23490  0.0  0.0  1728     0 ??  Is    Mon09AM    0:00.00 (smbd)
root     10048  0.0  0.0   872     0 ??  Rs    Mon09AM    0:28.03 (nmbd)
root      3848  0.0  0.0   224     0 ??  Is    Mon09AM    0:00.84 (cron)
root     11204  0.0  0.0    44     0 C0  Is+   Mon09AM    0:00.01 (getty)
root      2426  0.0  0.0    44     0 C1  Is+   Mon09AM    0:00.00 (getty)
root     19651  0.0  0.0    44     0 C2  Is+   Mon09AM    0:00.01 (getty)
root     30626  0.0  0.0    44     0 C3  Is+   Mon09AM    0:00.00 (getty)
root     17516  0.0  0.0    44     0 C5  Is+   Mon09AM    0:00.00 (getty)
root     28667  0.0  0.0   496     0 ??  Is    Mon09AM    0:06.75 (screen-3.9.8)
clay     19689  0.0  0.0 27468     0 p1  Ss+   Mon09AM    0:36.98 (tf)
clay     24035  0.0  0.0   388     0 p2  Is    Mon09AM    0:00.16 (ksh)
clay      7463  0.0  0.0   388     0 p3  Is+   Mon09AM    0:00.18 (ksh)
root       208  0.0  0.0   916     0 ??  Ss    Mon09AM    0:11.00 (sendmail)
cyrus     6186  0.0  0.0   832     0 ??  Is    10:06AM    0:01.70 (imapd)
root      1683  0.0  0.0   376     0 ??  I     10:08AM    0:03.34 (sshd)
clay     28649  0.0  0.0   376     0 p0  Is    10:08AM    0:00.01 (ksh)
clay      5389  0.0  0.0   288     0 p0  S+    10:08AM    0:00.10 (screen-3.9.8)
www      22249  0.0  0.0  3620     0 ??  I     11:15AM    0:05.64 (httpd)
www      31216  0.0  0.0  3836     0 ??  I     11:16AM    0:06.26 (httpd)
www      22036  0.0  0.0  3796     0 ??  I     11:21AM    0:04.28 (httpd)
www       9606  0.0  0.0  3412     0 ??  I     11:26AM    0:03.65 (httpd)
www      18536  0.0  0.0  3748     0 ??  I     11:27AM    0:05.61 (httpd)
www      24694  0.0  0.0  3848     0 ??  I     12:58PM    0:03.21 (httpd)
www       3576  0.0  0.0  3492     0 ??  I      1:21PM    0:02.18 (httpd)
clay      9586  0.0  0.0    68     0 p2  I+     3:52PM    0:00.01 (man)
clay      6837  0.0  0.0   372     0 p2  I+     3:52PM    0:00.00 (sh)
clay      5677  0.0  0.0   152     0 p2  I+     3:52PM    0:00.04 (more)
root      1108  0.0  0.0   240     0 ??  Z     -          0:00.00 (cron)

here is my (very basic) pf.conf:
{clay@scootch}[/var/crash]$ cat /etc/pf.conf                                             
#       $OpenBSD: pf.conf,v 1.2 2001/06/26 22:58:31 smart Exp $
#
# See pf.conf(5) for syntax and examples

ext_if = "fxp0"
int_if = "fxp1"

ext_ip = "X.X.X.X/32"
int_ip = "10.0.0.0/8"

spoofed = "{ 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, \
                255.255.255.255/32 }"

# normalize all incoming traffic
scrub in on $ext_if all

# block by default
block in all

# block non-routable packets coming in from the mean world
block in quick on $ext_if from $spoofed to any

# block smb, nfs, mysql, rndc? from the mean world
block in quick on $ext_if proto tcp from any to any port {137, 138, 139, 901}
block in quick on $ext_if proto tcp from any to any port {2049, 111}
block in quick on $ext_if proto tcp from any to any port 3306
block in quick on $ext_if proto tcp from any to any port 953

pass out on $ext_if proto tcp all modulate state
pass out on $ext_if proto udp all keep state

# pass all packets in and out (these are the implicit last two rules)
pass in all
pass out all


>How-To-Repeat:
turn on machine and wait - i've never been active when it's crashed, so i haven't
seen anything repeatable.
>Fix:
sorry, can't help you here

>Audit-Trail:
>Unformatted: