Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Apr 1996 17:34:48 -0500 (EST)
From:      "Marc G. Fournier" <scrappy@ki.net>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/1117: panic: rlist_free: free end overlaps already freed area
Message-ID:  <199604052234.RAA00875@freebsd.ki.net>
Resent-Message-ID: <199604052240.OAA18315@freefall.freebsd.org>

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

>Number:         1117
>Category:       kern
>Synopsis:       panic: rlist_free: free end overlaps already freed area
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr  5 14:40:05 PST 1996
>Last-Modified:
>Originator:     Marc G. Fournier
>Organization:
>Release:        FreeBSD 2.2-CURRENT i386
>Environment:

FreeBSD 2.2-CURRENT #35: Tue Apr  2 01:38:50 EST 1996
    scrappy@freebsd.ki.net:/usr/src/sys/compile/freebsd
CPU: i486DX (486-class CPU)
real memory  = 16777216 (16384K bytes)
avail memory = 14716928 (14372K bytes)
DEVFS: ready for devices
Probing for devices on the ISA bus:
vt0 at 0x60-0x6f irq 1 on motherboard
vt0: mda, mono, 8 scr, mf2-kbd, [R3.20-b24]
ed0 at 0x280-0x29f irq 5 maddr 0xd8000 msize 16384 on isa
ed0: address 00:00:c0:b7:91:71, type WD8013EPC (16 bit) 
aha0 at 0x330-0x333 irq 11 drq 5 on isa
(aha0:0:0): "UNISYS U0531 ST3600N 8374" type 0 fixed SCSI 2
sd0(aha0:0:0): Direct-Access 500MB (1025920 512 byte sectors)
(aha0:3:0): "CONNER CFA540S 13B0" type 0 fixed SCSI 2
sd1(aha0:3:0): Direct-Access 515MB (1056708 512 byte sectors)
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
npx0 on motherboard
npx0: INT 16 interface
sctarg0(noadapter::): Processor Target 
devfs ready to run

>Description:

	After 2days, 16hrs uptime, in order to install a new -current
kernel, I typed 'reboot' as root at the prompt, at which point she 
panic'd (I swear, i was being gentle with her *grin*)

	I *think* I'm getting the hang of gdb, but if I'm missing some
data that I could have gotten out of gdb, please let me know and I'll
add that in :)

DDB Output:

panic: rlist_free: free end overlaps already freed area

rlist_free+0x9d
swap_pager_freeswapspace+0x1b
swap_pager_free_swap+0xbb
swap_pager_dealloc+0x9c
vm_pager_deallocate+0x16
vm_object_terminate+0x13b
vm_object_deallocate+0x1a3
vm_map_entry_delete+0x50
vm_map_delete+0x0x13e
vm_map_remove+0x60
exit1+0xc5
exit+0x14
syscall+0x129
Xsyscall+0x35
--- syscall 1, eip = 0x8159a5d, ebp = 0xefbfdb40 ---


GDB Output:

Script started on Fri Apr  5 17:24:24 1996
gdbfreebsd# gdb -k /usr/debug/kernel-sym.35 vmcore.5
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.13 (i386-unknown-freebsd), 
Copyright 1994 Free Software Foundation, Inc...
IdlePTD 20d000
current pcb at 1dabc8
panic: rlist_free: free end overlaps already freed area
#0  boot (howto=260) at ../../i386/i386/machdep.c:942
Source file is more recent than executable.
942					dumppcb.pcb_ptd = rcr3();
(kgdb) where
#0  boot (howto=260) at ../../i386/i386/machdep.c:942
#1  0xf0113727 in panic (fmt=0xf01011f8 "from debugger")
    at ../../kern/subr_prf.c:133
#2  0xf0101215 in db_panic (dummy1=-266739549, dummy2=0, dummy3=-1, 
    dummy4=0xefbffcb0 "") at ../../ddb/db_command.c:395
#3  0xf01010fe in db_command (last_cmdp=0xf01cab34, cmd_table=0xf01ca994)
    at ../../ddb/db_command.c:288
#4  0xf010127d in db_command_loop () at ../../ddb/db_command.c:417
#5  0xf01035e8 in db_trap (type=3, code=0) at ../../ddb/db_trap.c:73
#6  0xf019de7a in kdb_trap (type=3, code=0, regs=0xefbffdac)
    at ../../i386/i386/db_interface.c:136
#7  0xf01a59ec in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = -191131724, 
      tf_esi = -267302978, tf_ebp = -272630288, tf_isp = -272630316, 
      tf_ebx = 256, tf_edx = -266739595, tf_ecx = 1920, tf_eax = 18, 
      tf_trapno = 3, tf_err = 0, tf_eip = -266739549, tf_cs = -272695288, 
      tf_eflags = 582, tf_esp = -266739611, tf_ss = -267307330})
    at ../../i386/i386/trap.c:399
#8  0xf019e6f1 in calltrap ()
#9  0xf011371e in panic (
    fmt=0xf01147be "rlist_free: free end overlaps already freed area")
    at ../../kern/subr_prf.c:129
#10 0xf0114901 in rlist_free (rlh=0xf01e5ed0, start=8912, end=8935)
    at ../../kern/subr_rlist.c:157
#11 0xf018bf77 in swap_pager_freeswapspace (object=0xf0935880, from=8912, 
    to=8935) at ../../vm/swap_pager.c:408
#12 0xf018c167 in swap_pager_free_swap (object=0xf0935880)
    at ../../vm/swap_pager.c:485
#13 0xf018c6b8 in swap_pager_dealloc (object=0xf0935880)
    at ../../vm/swap_pager.c:721
#14 0xf019861a in vm_pager_deallocate (object=0xf0935880)
    at ../../vm/vm_pager.c:178
#15 0xf01942b7 in vm_object_terminate (object=0xf0935880)
    at ../../vm/vm_object.c:416
#16 0xf019410b in vm_object_deallocate (object=0xf0935880)
    at ../../vm/vm_object.c:356
#17 0xf019227c in vm_map_entry_delete (map=0xf0937300, entry=0xf0924740)
    at ../../vm/vm_map.c:1620
#18 0xf01923ce in vm_map_delete (map=0xf0937300, start=0, end=4022329344)
    at ../../vm/vm_map.c:1715
#19 0xf019244c in vm_map_remove (map=0xf0937300, start=0, end=4022329344)
    at ../../vm/vm_map.c:1740
#20 0xf0108c89 in exit1 (p=0xf0937400, rv=0) at ../../kern/kern_exit.c:161
#21 0xf0108b84 in exit (p=0xf0937400, uap=0xefbfff94, retval=0xefbfff84)
    at ../../kern/kern_exit.c:97
#22 0xf01a646d in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 0, 
      tf_esi = -1, tf_ebp = -272639168, tf_isp = -272629788, 
      tf_ebx = 135680096, tf_edx = 0, tf_ecx = 1, tf_eax = 1, tf_trapno = 7, 
      tf_err = 7, tf_eip = 135633501, tf_cs = 31, tf_eflags = 658, 
      tf_esp = -272639188, tf_ss = 39}) at ../../i386/i386/trap.c:904
---Type <return> to continue, or q <return> to quit---qQuit
(kgdb) up 10
#10 0xf0114901 in rlist_free (rlh=0xf01e5ed0, start=8912, end=8935)
    at ../../kern/subr_rlist.c:157
157				panic("rlist_free: free end overlaps already freed area");
(kgdb) list
152		}
153	
154		if (cur_rlp != NULL) {
155	
156			if (end >= cur_rlp->rl_start)
157				panic("rlist_free: free end overlaps already freed area");
158	
159			if (prev_rlp) {
160				if (start <= prev_rlp->rl_end)
161					panic("rlist_free: free start overlaps already freed area");
(kgdb) print end
$1 = 8935
(kgdb) print cur_rlp->rl_start
$2 = 8920
(kgdb) print cur_rlp
$3 = (struct rlist *) 0xf49ba450
(kgdb) print prev_rlp
$4 = (struct rlist *) 0xf49b8fb4
(kgdb) print start
$5 = 8912
(kgdb) print prev_rlp->rl_end
$6 = 8911
(kgdb) quit
freebsd# exit
exit

Script done on Fri Apr  5 17:25:50 1996
>How-To-Repeat:

	

>Fix:
	
	

>Audit-Trail:
>Unformatted:



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