Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Oct 1995 17:58:18 +0200
From:      Heikki Suonsivu <hsu@clinet.fi>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/798: PPP panics
Message-ID:  <199510291558.RAA21635@katiska.clinet.fi>
Resent-Message-ID: <199510291600.IAA28832@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         798
>Category:       kern
>Synopsis:       PPP panics, touches 0xdeadc0de pointers
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Oct 29 08:00:01 PST 1995
>Last-Modified:
>Originator:     Heikki Suonsivu
>Organization:
Clinet, Espoo, Finland
>Release:        FreeBSD 2.2-CURRENT i386
>Environment:

The machines are 486-100 and 486-120, with 1 or 2 16-port cyclades
boards.  Used as terminal servers, people talk PPP into them. 

Oct 29 10:21:42 osku /kernel: CPU: i486 DX4 (486-class CPU)
Oct 29 10:21:42 osku /kernel:   Origin = "GenuineIntel"  Id = 0x480  Stepping=0
Oct 29 10:21:42 osku /kernel:   Features=0x3<FPU,VME>
Oct 29 10:21:42 osku /kernel: real memory  = 16777216 (16384K bytes)
Oct 29 10:21:43 osku /kernel: avail memory = 14544896 (14204K bytes)
Oct 29 10:21:43 osku /kernel: Probing for devices on the ISA bus:
Oct 29 10:21:43 osku /kernel: ed0 at 0x280-0x29f irq 5 maddr 0xd8000 msize 16384 on isa
Oct 29 10:21:43 osku /kernel: ed0: address 00:00:c0:b9:ae:23, type WD8013EP (16 bit) 
Oct 29 10:21:43 osku /kernel: ed1 not found at 0x300
Oct 29 10:21:43 osku /kernel: ed2 not found at 0x360
Oct 29 10:21:43 osku /kernel: ed3 not found at 0x240
Oct 29 10:21:43 osku /kernel: ed4 not found at 0x340
Oct 29 10:21:43 osku /kernel: ed5 not found at 0x220
Oct 29 10:21:43 osku /kernel: vt0 at 0x60-0x6f irq 1 on motherboard
Oct 29 10:21:43 osku /kernel: vt0: unkown s3, 80 col, color, 8 scr, mf2-kbd, [R3
.20-b24]
Oct 29 10:21:43 osku /kernel: sio0 at 0x3f8-0x3ff irq 4 on isa
Oct 29 10:21:43 osku /kernel: sio0: type 16550A
Oct 29 10:21:43 osku /kernel: sio1 at 0x2f8-0x2ff irq 3 on isa
Oct 29 10:21:43 osku /kernel: sio1: type 16550A
Oct 29 10:21:43 osku /kernel: sio2 not found at 0x2a0
Oct 29 10:21:49 osku /kernel: sio3 not found at 0x2a8
Oct 29 10:21:49 osku /kernel: sio4 not found at 0x2b0
Oct 29 10:21:49 osku /kernel: sio5 not found at 0x2b8
Oct 29 10:21:49 osku /kernel: cy0 irq 10 maddr 0xd4000 msize 8192 on isa
Oct 29 10:21:49 osku /kernel: cy1 irq 11 maddr 0xd6000 msize 8192 on isa
Oct 29 10:21:49 osku /kernel: bt0 not found at 0x330
Oct 29 10:21:49 osku /kernel: aha0 not found at 0x330
Oct 29 10:21:49 osku /kernel: wdc0 at 0x1f0-0x1f7 irq 14 on isa
Oct 29 10:21:49 osku /kernel: wdc0: unit 0 (wd0): <QUANTUM FIREBALL1080A>
Oct 29 10:21:50 osku /kernel: wd0: 1039MB (2128896 sectors), 2112 cyls, 16 heads, 63 S/T, 512 B/S
Oct 29 10:21:50 osku /kernel: wdc1 not found at 0x170
Oct 29 10:21:50 osku /kernel: fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
Oct 29 10:21:50 osku /kernel: fdc0: NEC 765
Oct 29 10:21:50 osku /kernel: fd0: 1.44MB 3.5in
Oct 29 10:21:50 osku /kernel: npx0 on motherboard
Oct 29 10:21:50 osku /kernel: npx0: INT 16 interface
Oct 29 10:21:50 osku /kernel: bio_imask c0004040 tty_imask c0030c3a net_imask c0030c3a
Oct 29 10:21:50 osku /kernel: Probing for devices on the PCI bus:
Oct 29 10:21:50 osku /kernel: pci0:0: vendor=0x10b9, device=0x1489, class=bridge (host) [no driver assigned]
Oct 29 10:21:50 osku /kernel: vga0 <VGA-compatible display device> rev 0 int a irq 11 on pci0:3
Oct 29 10:21:50 osku /kernel: WARNING: / was not properly dismounted.

Oct 27 01:55:37 karvinen /kernel: CPU: i486DX (486-class CPU)
Oct 27 01:55:37 karvinen /kernel: real memory  = 16777216 (16384K bytes)
Oct 27 01:55:37 karvinen /kernel: avail memory = 14544896 (14204K bytes)
Oct 27 01:55:37 karvinen /kernel: Probing for devices on the ISA bus:
Oct 27 01:55:38 karvinen /kernel: ed0 at 0x280-0x29f irq 5 maddr 0xd8000 msize 16384 on isa
Oct 27 01:55:38 karvinen /kernel: ed0: address 00:00:c0:94:3e:2c, type WD8013EP (16 bit) 
Oct 27 01:55:38 karvinen /kernel: ed1 not found at 0x300
Oct 27 01:55:39 karvinen /kernel: ed2 not found at 0x360
Oct 27 01:55:39 karvinen /kernel: ed3 not found at 0x240
Oct 27 01:55:39 karvinen /kernel: ed4 not found at 0x340
Oct 27 01:55:39 karvinen /kernel: ed5 not found at 0x220
Oct 27 01:55:40 karvinen /kernel: vt0 at 0x60-0x6f irq 1 on motherboard
Oct 27 01:55:40 karvinen /kernel: vt0: cl-gd5428, 80/132 col, color, 8 scr, mf2-kbd, [R3.20-b24]
Oct 27 01:55:40 karvinen /kernel: sio0 not found at 0x3f8
Oct 27 01:55:40 karvinen /kernel: sio1 not found at 0x2f8
Oct 27 01:55:40 karvinen /kernel: sio2 not found at 0x2a0
Oct 27 01:55:41 karvinen /kernel: sio3 not found at 0x2a8
Oct 27 01:55:41 karvinen /kernel: sio4 not found at 0x2b0
Oct 27 01:55:41 karvinen /kernel: sio5 not found at 0x2b8
Oct 27 01:55:41 karvinen /kernel: cy0 irq 10 maddr 0xd4000 msize 8192 on isa
Oct 27 01:55:42 karvinen /kernel: cy1 irq 11 maddr 0xd6000 msize 8192 on isa
Oct 27 01:55:42 karvinen /kernel: bt0 not found at 0x330
Oct 27 01:55:42 karvinen /kernel: aha0 not found at 0x330
Oct 27 01:55:43 karvinen /kernel: wdc0 at 0x1f0-0x1f7 irq 14 on isa
Oct 27 01:55:43 karvinen /kernel: wdc0: unit 0 (wd0): <ST3660A>
Oct 27 01:55:43 karvinen /kernel: wd0: 520MB (1065456 sectors), 1057 cyls, 16 heads, 63 S/T, 512 B/S
Oct 27 01:55:44 karvinen /kernel: wdc1 not found at 0x170
Oct 27 01:55:44 karvinen /kernel: fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
Oct 27 01:55:44 karvinen /kernel: fdc0: NEC 765
Oct 27 01:55:44 karvinen /kernel: fd0: 1.44MB 3.5in
Oct 27 01:55:45 karvinen /kernel: npx0 on motherboard
Oct 27 01:55:45 karvinen /kernel: npx0: INT 16 interface
Oct 27 01:55:45 karvinen /kernel: bio_imask c0004040 tty_imask c0030c22 net_imask c0030c22
Oct 27 01:55:45 karvinen /kernel: WARNING: / was not properly dismounted.

machine		"i386"
cpu		"I386_CPU"
cpu		"I486_CPU"
cpu		"I586_CPU"		# aka Pentium(tm)
ident		CLINETTS
maxusers	64
options "NMBCLUSTERS=2048"
options "TTYHOG=4096"
options "RS_IBUFSIZE=1024"
options		"CHILD_MAX=256"
options		"OPEN_MAX=256"
options		MATH_EMULATE		#Support for x87 emulation
                                        #new math emulator 
config		kernel	root on wd0 swap on wd0 and wd1 and sd0 and sd1 and sd2 and sd3 and vn0 dumps on wd0

options		"COMPAT_43"
options		SYSVSHM
options		SYSVSEM
options		SYSVMSG

options		DODUMP
options		KTRACE			#kernel tracing
options		DIAGNOSTIC
options		UCONSOLE

options		INET			#Internet communications protocols
pseudo-device	ether			#Generic Ethernet
pseudo-device	sppp			#Generic Synchronous PPP
pseudo-device	loop			#Network loopback device
pseudo-device	sl	16		#Serial Line IP
pseudo-device	ppp	32		#Point-to-point protocol
pseudo-device	bpfilter	4	#Berkeley packet filter
pseudo-device	disc			#Discard device
pseudo-device	tun	32		#Tunnel driver(user process ppp)
options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
options		GATEWAY			#internetwork gateway
options		MROUTING		# Multicast routing
options         IPFIREWALL              #firewall
options         IPFIREWALL_VERBOSE      #print information about
					# dropped packets

options		FFS			#Fast filesystem
options		NFS			#Network File System
options		"CD9660"		#ISO 9660 filesystem
options		MFS			#Memory File System
options		MSDOSFS			#MS DOS File System
options		PROCFS			#Process filesystem

controller	pci0
device		ncr0
device		de5
options		PROBE_VERBOSE
options		"SCSI_DELAY=10"

controller	scbus0 	#base SCSI code
device		ch0	#SCSI media changers
device		sd0	#SCSI disks
device		st0	#SCSI tapes
device		cd0	#SCSI CD-ROMs
disk sd0 at scbus0 target 0
disk sd1 at scbus0 target 1
disk sd2 at scbus0 target 2
disk sd3 at scbus0 target 3
disk sd4 at scbus0 target 4
disk sd5 at scbus0 target 5
disk sd6 at scbus0 target 6
tape st0 at scbus0 target 0
tape st1 at scbus0 target 1
tape st2 at scbus0 target 2
tape st3 at scbus0 target 3
tape st4 at scbus0 target 4
tape st5 at scbus0 target 5
tape st6 at scbus0 target 6
device cd0 at scbus0 target 0
device cd1 at scbus0 target 1
device cd2 at scbus0 target 2
device cd3 at scbus0 target 3
device cd4 at scbus0 target 4
device cd5 at scbus0 target 5
device cd6 at scbus0 target 6

pseudo-device	pty	64	#Pseudo ttys - can go as high as 64
pseudo-device	speaker		#Play IBM BASIC-style noises out your speaker
pseudo-device	log		#Kernel syslog interface (/dev/klog)
pseudo-device	gzip		#Exec gzipped a.out's
pseudo-device	vn		#Vnode driver (turns a file into a device)

controller	isa0
options		"AUTO_EOI_1"
options		BOUNCE_BUFFERS
device		vt0	at isa? port "IO_KBD" tty irq 1 vector pcrint
options		"PCVT_FREEBSD=210"	# pcvt running on FreeBSD 2.1
options		XSERVER			# include code for XFree86
options		FAT_CURSOR		# start with block cursor
options		HARDFONTS
options         "MAXCONS=16"
device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
controller	bt0	at isa? port "IO_BT0" bio irq ? vector btintr
controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
disk		wd0	at wdc0 drive 0
disk		wd1	at wdc0 drive 1
controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
disk		wd2	at wdc1 drive 0
disk		wd3	at wdc1 drive 1
controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk		fd0	at fdc0 drive 0
disk		fd1	at fdc0 drive 1
tape		ft0	at fdc0 drive 2
device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
device		sio1	at isa? port "IO_COM2" tty irq 3 vector siointr
device		sio2	at isa? port 0x2a0 tty flags 0x501
device		sio3	at isa? port 0x2a8 tty flags 0x501
device		sio4	at isa? port 0x2b0 tty flags 0x501
device		sio5	at isa? port 0x2b8 tty irq 12 flags 0x501 vector siointr
device		cy0	at isa? tty irq 10 iomem 0xd4000 iosiz 8192 vector cyintr
device		cy1	at isa? tty irq 11 iomem 0xd6000 iosiz 8192 vector cyintr
options		COM_MULTIPORT		#code for some cards with shared IRQs
device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
device ed1 at isa? port 0x300 net irq 10 iomem 0xcc000 vector edintr
device ed2 at isa? port 0x360 net irq 7 iomem 0xd0000 vector edintr
device ed3 at isa? port 0x240 net irq 9 vector edintr
device ed4 at isa? port 0x340 net irq 15 iomem 0xdc000 vector edintr
device ed5 at isa? port 0x220 net irq 11 iomem 0xd4000 vector edintr

>Description:

Panic dumps are ftp://clinet.fi/pub/FreeBSD/crashdumps/kernel.[2-8].
They are all with full symbols so they are relatively easy to look at
with kgdb.  These are against -STABLE from about a week ago with the
slirp patch installed (the patch didn't have effect to this problem,
and the older dumps may be too old).

Current directory is /usr/local/ftp/pub/FreeBSD/crashdumps/
Reading symbol data from /usr/local/ftp/pub/FreeBSD/crashdumps/kernel.8...done.
IdlePTD 234000
panic: page fault
current pcb at 1ef1a4
Reading in symbols for ../../i386/i386/machdep.c...done.
(kgdb) bt
#0  boot (howto=256) (../../i386/i386/machdep.c line 873)
#1  0xf0114b83 in panic (...)
#2  0xf01afb6e in trap_fatal (...)
#3  0xf01af6e0 in trap_pfault (...)
#4  0xf01af37f in trap (...)
#5  0xf01a54fd in exception:calltrap ()
#6  0xf013d343 in pppstart (...)
#7  0xf01b9bd2 in cypoll (...)
#8  0xf01a6851 in exception:swi_tty ()
#9  0xf01aecec in cpu_switch ()
(kgdb) up
Reading in symbols for ../../kern/subr_prf.c...done.
#1  0xf0114b83 in panic (fmt=(char *) 0xf01af06e "page fault") (../../kern/subr_prf.c line 124)
124	(../../kern/subr_prf.c)
(kgdb) directory /usr/stable/src/sys/i386/conf
Source directories searched: /usr/local/ftp/pub/FreeBSD/crashdumps:/usr/stable/src/sys/i386/conf
(kgdb) up
Reading in symbols for ../../i386/i386/trap.c...done.
#2  0xf01afb6e in trap_fatal (frame=(struct trapframe *) 0xf01d9f28) (../../i386/i386/trap.c line 745)
(kgdb) up
#3  0xf01af6e0 in trap_pfault (frame=(struct trapframe *) 0xf01d9f28, usermode=0) (../../i386/i386/trap.c line 667)
(kgdb) up
#4  0xf01af37f in trap (frame={tf_es = -262406128, tf_ds = -256704496, tf_edi = -266405500, tf_esi = -262352588, tf_ebp = -266494064, tf_isp = -267136189, tf_ebx = -1073676288, tf_edx = -262516736, tf_ecx = -1073542110, tf_eax = 1952364, tf_trapno = 12, tf_err = -267190272, tf_eip = -267136189, tf_cs = 8, tf_eflags = 66070, tf_esp = -257933312, tf_ss = -266428316}) (../../i386/i386/trap.c line 307)
(kgdb) up
#5  0xf01a54fd in exception:calltrap ()
(kgdb) up
Reading in symbols for ../../net/if_ppp.c...done.
#6  0xf013d343 in pppstart (tp=(struct tty *) 0xf01ea064) (../../net/if_ppp.c line 1042)
(kgdb) print m
$1 = (struct mbuf *) 0xf0c25880
(kgdb) print m2
$2 = (struct mbuf *) 0xc0010000
(kgdb) print done
$3 = 1
(kgdb) print m
$4 = (struct mbuf *) 0xf0c25880
(kgdb) print *m
$5 = {m_hdr = {mh_next = 0xdeadc0de, mh_nextpkt = 0xdead0001, mh_len = -559038242, mh_data = 0xf0ac9280 "\336\300\255\336\001", mh_type = -16162, mh_flags = -8531}, M_dat = {MH = {MH_pkthdr = {len = -559038242, rcvif = 0xdeadc0de}, MH_dat = {MH_ext = {ext_buf = 0xdeadc0de <Address 0xdeadc0de out of bounds>, ext_free = 0xdeadc0de, ext_size = 0xdeadc0de}, MH_databuf = {"\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336", '\000' <repeats 64 times>}}}, M_databuf = {"\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336\336\300\255\336", '\000' <repeats 64 times>}}}

0xdeadc0de, a freed mbuf was received from input queue?

(kgdb) print start
$6 = (unsigned char *) 0xf05cd134 "\032N-\034D;\331\242\311\"\0269\207\017\354,\206\377S\263f\234=\005.4F\360\030D\350 \322L\221s\025\325po\246\252\245\251\332V\020\320\210`\366\203=\324\304z\r\335\374n\355\237\232\300\371|\256K\227.\264m\ay\252\211\2001\234\252\206\224\237\001\225\b\244"
(kgdb) print sc
$7 = (struct ppp_softc *) 0xf01ef984
(kgdb) print sc->sc_outm
$8 = (struct mbuf *) 0x0
(kgdb) print m
$9 = (struct mbuf *) 0xf0c25880
(kgdb) up
Reading in symbols for ../../i386/isa/cy.c...done.
#7  0xf01b9bd2 in cypoll () (../../i386/isa/cy.c line 1603)
(kgdb) print tp
$10 = (struct tty *) 0xf01ea064
(kgdb) print *tp
$11 = {t_rawq = {c_cc = 0, c_cbcount = 0, c_cbmax = 0, c_cbreserved = 0, c_cf = 0x0, c_cl = 0x0}, t_rawcc = 684277, t_canq = {c_cc = 0, c_cbcount = 0, c_cbmax = 1, c_cbreserved = 1, c_cf = 0x0, c_cl = 0x0}, t_cancc = 956, t_outq = {c_cc = 723, c_cbcount = 7, c_cbmax = 7, c_cbreserved = 7, c_cf = 0xf0c3c2ac , c_cl = 0xf0b3c577 }, t_outcc = 8130688, t_line = 5, t_dev = 0x00003011, t_state = 131118, t_flags = 1543831560, t_timeout = 0, t_pgrp = 0xf0c38d40, t_session = 0xf0b62d00, t_rsel = {si_pid = 0, si_flags = 0}, t_wsel = {si_pid = 0, si_flags = 0}, t_termios = {c_iflag = 0x00000005, c_oflag = 0x00000000, c_cflag = 0x00034b00, c_lflag = 0x00000000, c_cc = {"\004\377\377\177\027\025\022\377\003\034\032\031\021\023\026\017\001\000\024\377"}, c_ispeed = 115200, c_ospeed = 115200}, t_winsize = {ws_row = 0x0000, ws_col = 0x0000, ws_xpixel = 0x0000, ws_ypixel = 0x0000}, t_oproc = 0xf01ba0a8, t_stop = 0x0, t_param = 0xf01b9d00, t_sc = 0xf01ef984, t_column = 34, t_rocount = 0, t_roc!
 ol = 0, t_hiwat = 2052, t_lowat = 256, t_gen = 33}
(kgdb)

>How-To-Repeat:

	Build a terminal server from a FreeBSD system with many ports
	and let people dial in and run PPP into it.

>Fix:
	
	Don't know, but the above seems like ppp driver receives a freed mbuf? 

>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510291558.RAA21635>