Date: Sat, 12 Jun 1999 11:26:33 +0100 (BST) From: Andrew Gordon <arg@arg1.demon.co.uk> To: stable@freebsd.org Subject: Panic: Bad stack grow start/end in new stack entry [StarOffice] Message-ID: <Pine.BSF.3.96.990612110721.341A-100000@server.arg.sj.co.uk>
next in thread | raw e-mail | index | archive | help
I have a reproducible panic on a 3.2-stable system ('make world' and new
kernel from CTM sources about 2 days ago, though the problem was happening
before then).
I think I am in fact suffering from 2 different kernel bugs. This machine
has most filesystems on a local disc, but has user home directories
NFS-mounted from a FreeBSD 2.2.7 server. StarOffice executables are all
on the local drive, but it keeps a load of files in each user's ~/Office50
directory. The first problem is that these files become corrupt very
readily - I suspect mmap()/NFS interaction or similar, since the problem
doesn't arise if the home directory is placed on the local drive. No
panic at this stage, just corrupt files as reported by StarOffice when it
is re-started.
However, a couple of users have got their files corrupted in such a way
that after clearing StarOffice's "corrupt file" dialog the system panics:
IdlePTD 2699264
initial pcb at 22731c
panicstr: Bad stack grow start/end in new stack entry
panic messages:
---
panic: Bad stack grow start/end in new stack entry
(kgdb) where
#0 boot (howto=256) at ../../kern/kern_shutdown.c:285
#1 0xc012c844 in at_shutdown (
function=0xc020b47d <__set_sysinit_set_sym_vm_mem_sys_init+529>,
arg=0xc64ac600, queue=-968158528) at ../../kern/kern_shutdown.c:446
#2 0xc01c6dea in vm_map_growstack (p=0xc64ac600, addr=3210739712)
at ../../vm/vm_map.c:759
#3 0xc01e8196 in grow_stack (p=0xc64ac600, sp=3210858496)
at ../../i386/i386/vm_machdep.c:571
#4 0xc01e6467 in trap_pfault (frame=0xc657efbc, usermode=1,
eva=3210862564)
at ../../i386/i386/trap.c:808
#5 0xc01e601a in trap (frame={tf_es = 39, tf_ds = 39, tf_edi = 6, tf_esi
= 6,
tf_ebp = -1084104588, tf_isp = -967315484, tf_ebx = 690240016,
tf_edx = 0, tf_ecx = 688696616, tf_eax = 0, tf_trapno = 12, tf_err =
6,
tf_eip = 690228689, tf_cs = 31, tf_eflags = 66198, tf_esp =
-1084104728,
tf_ss = 39}) at ../../i386/i386/trap.c:358
#6 0x29240dd1 in ?? ()
#7 0x29240f42 in ?? ()
(kgdb) up
#1 0xc012c844 in at_shutdown (
function=0xc020b47d <__set_sysinit_set_sym_vm_mem_sys_init+529>,
arg=0xc64ac600, queue=-968158528) at ../../kern/kern_shutdown.c:446
446 boot(bootopt);
(kgdb) up
#2 0xc01c6dea in vm_map_growstack (p=0xc64ac600, addr=3210739712)
at ../../vm/vm_map.c:759
759 panic ("Bad stack grow start/end in new
stack entry");
(kgdb) list
754 /* Adjust the available stack space by the amount we grew.
*/
755 if (rv == KERN_SUCCESS) {
756 new_stack_entry = prev_entry->next;
757 if (new_stack_entry->end != stack_entry->start
||
758 new_stack_entry->start != addr)
759 panic ("Bad stack grow start/end in new
stack entry");
760 else {
761 new_stack_entry->avail_ssize =
stack_entry->avail_ssize -
762
(new_stack_entry->end -
763
new_stack_entry->start);
(kgdb) print new_stack_entry
$1 = (struct vm_map_entry *) 0x0
(kgdb) print rv
$2 = 0
(kgdb) print prev_entry
$3 = (struct vm_map_entry *) 0xc6575500
(kgdb) print *prev_entry
$4 = {prev = 0xc65aaa50, next = 0xc65aa7a8, start = 3210608640,
end = 3210862592, avail_ssize = 1949696, object = {vm_object =
0xc65a0f68,
share_map = 0xc65a0f68, sub_map = 0xc65a0f68}, offset = 0,
eflags = 0 '\000', protection = 7 '\a', max_protection = 7 '\a',
inheritance = 1 '\001', wired_count = 0}
(kgdb)
$5 = {prev = 0xc65aaa50, next = 0xc65aa7a8, start = 3210608640,
end = 3210862592, avail_ssize = 1949696, object = {vm_object =
0xc65a0f68,
share_map = 0xc65a0f68, sub_map = 0xc65a0f68}, offset = 0,
eflags = 0 '\000', protection = 7 '\a', max_protection = 7 '\a',
inheritance = 1 '\001', wired_count = 0}
(kgdb)
This kernel has my patch to procfs to make /proc/xx/cmdline work for
StarOffice (patch as sent to the list a couple of weeks ago), but is
otherwise built from standard sources.
It has various kernel options for threads as required by StarOffice:
machine "i386"
cpu "I586_CPU"
ident "ETH18"
maxusers 64
options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options MFS #Memory Filesystem
options NFS #Network Filesystem
options MSDOSFS #MSDOS Filesystem
options "CD9660" #ISO 9660 Filesystem
options PROCFS #Process filesystem
options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device
options UCONSOLE #Allow users to grab the console
options USERCONFIG #boot -c editor
options SOFTUPDATES
options "P1003_1B"
options "_KPOSIX_PRIORITY_SCHEDULING"
options "_KPOSIX_VERSION=199309L"
config kernel root on wd0
controller isa0
controller pnp0 # PnP support for ISA
controller pci0
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2
disk fd0 at fdc0 drive 0
controller wdc0 at isa? port "IO_WD1" bio irq 14 flags 0x80ff80ff
disk wd0 at wdc0 drive 0
controller wdc1 at isa? port "IO_WD2" bio irq 15
options ATAPI #Enable ATAPI support for IDE bus
options ATAPI_STATIC #Don't do it as an LKM
device acd0 #IDE CD-ROM
# atkbdc0 controlls both the keyboard and the PS/2 mouse
controller atkbdc0 at isa? port IO_KBD tty
device atkbd0 at isa? tty irq 1
device psm0 at isa? tty irq 12
device vga0 at isa? port ? conflicts
# syscons is the default console driver, resembling an SCO console
device sc0 at isa? tty
device npx0 at isa? port IO_NPX irq 13
device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4
device sio1 at isa? port "IO_COM2" tty irq 3
device sio2 at isa? disable port "IO_COM3" tty irq 5
device sio3 at isa? disable port "IO_COM4" tty irq 9
# Parallel port
device ppc0 at isa? port? tty irq 7
controller ppbus0
device lpt0 at ppbus?
device ppi0 at ppbus?
device fxp0 # Intel EtherExpress PRO/100B (82557, 82558)
pseudo-device loop
pseudo-device ether
pseudo-device tun 1
pseudo-device pty 32
# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options KTRACE #kernel tracing
# This provides support for System V shared memory and message queues.
#
options SYSVSHM
options SYSVMSG
# The `bpfilter' pseudo-device enables the Berkeley Packet Filter. Be
# aware of the legal and administrative consequences of enabling this
# option. The number of devices determines the maximum number of
# simultaneous BPF clients programs runnable.
pseudo-device bpfilter 4 #Berkeley packet filter
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990612110721.341A-100000>
