Skip site navigation (1)Skip section navigation (2)
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>