Subject: kern/28367: kernel diagnostic assertion panic in genfs_getpages with LFS
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Pavel Cahyna <pavel.cahyna@st.mff.cuni.cz>
List: netbsd-bugs
Date: 11/20/2004 10:08:01
>Number: 28367
>Category: kern
>Synopsis: kernel diagnostic assertion panic in genfs_getpages with LFS
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Nov 20 10:08:00 +0000 2004
>Originator: Pavel Cahyna
>Release: NetBSD 2.0_BETA i386
>Organization:
>Environment:
System: NetBSD 2.0_BETA (GENERIC_DIAGNOSTIC s patchem D. Reeda - PR#26839) #4: Wed Oct 6 10:13:10 CEST 2004
pavel@pc:/mnt/obj/kompilace/jadra/compile/GENERIC_DIAGNOSTIC
>Description:
I tried to remove several directories and large files on a cca 4GB LFS partition
(there was still at least 0.8 GB free space) and the kernel paniced:
panic: kernel diagnostic assertion "(origoffset & (PAGE_SIZE - 1)) == 0 && origoffset >= 0" failed: file "/mnt/obj/clean-2-0/src/sys/miscfs/genfs/genfs_vnops.c", line 507
backtrace:
(gdb) target kcore netbsd-GENERIC_DIAGNOSTIC-4.5.core
panic: kernel %sassertion "%s" failed: file "%s", line %d
#0 0x07efc000 in ?? ()
(gdb) bt
#0 0x07efc000 in ?? ()
#1 0xc04090c7 in cpu_reboot ()
#2 0xc033ec8d in db_reboot_cmd (addr=1, have_addr=0, count=-1068510646,
modif=0xc4bff688 "@�\177�\237��\001")
at /mnt/obj/clean-2-0/src/sys/ddb/db_command.c:689
#3 0xc033e7d3 in db_command (last_cmdp=0xc07710a4, cmd_table=0xc05c0ae0)
at /mnt/obj/clean-2-0/src/sys/ddb/db_command.c:464
#4 0xc033e4e6 in db_command_loop ()
at /mnt/obj/clean-2-0/src/sys/ddb/db_command.c:255
#5 0xc03415b0 in db_trap (type=1, code=0)
at /mnt/obj/clean-2-0/src/sys/ddb/db_trap.c:101
#6 0xc040686a in kdb_trap (type=1, code=0, regs=0xc4bff8dc)
at /mnt/obj/clean-2-0/src/sys/arch/i386/i386/db_interface.c:225
#7 0xc0413e07 in trap (frame=0xc4bff8dc)
at /mnt/obj/clean-2-0/src/sys/arch/i386/i386/trap.c:284
#8 0xc0102fc5 in calltrap ()
#9 0xc037e341 in panic (
fmt=0xc0760f40 "kernel %sassertion \"%s\" failed: file \"%s\", line %d")
at /mnt/obj/clean-2-0/src/sys/kern/subr_prf.c:226
#10 0xc0591634 in __assert (t=0xc06c57d7 "diagnostic ",
f=0xc072b380 "/mnt/obj/clean-2-0/src/sys/miscfs/genfs/genfs_vnops.c",
l=507,
e=0xc072b3e0 "(origoffset & (PAGE_SIZE - 1)) == 0 && origoffset >= 0")
---Type <return> to continue, or q <return> to quit---
at /mnt/obj/clean-2-0/src/sys/lib/libkern/__assert.c:47
#11 0xc03aa913 in genfs_getpages (v=0xc4bffae4)
at /mnt/obj/clean-2-0/src/sys/miscfs/genfs/genfs_vnops.c:650
#12 0xc03a96a6 in VOP_GETPAGES (vp=0xc569a600, offset=-4185982978164416512,
m=0xc4bffb54, count=0xc4bffba0, centeridx=0, access_type=1, advice=0,
flags=1026) at /mnt/obj/clean-2-0/src/sys/kern/vnode_if.c:1631
#13 0xc0336ba1 in ufs_balloc_range (vp=0xc569a600, off=-4185982978164408593,
len=273, cred=0xffffffff, flags=1)
at /mnt/obj/clean-2-0/src/sys/ufs/ufs/ufs_inode.c:229
#14 0xc032437d in lfs_truncate (v=0xc4bffd44)
at /mnt/obj/clean-2-0/src/sys/ufs/lfs/lfs_inode.c:298
#15 0xc03a95b0 in VOP_TRUNCATE (vp=0xc569a600, length=0, flags=0,
cred=0xffffffff, p=0xc4c00004)
at /mnt/obj/clean-2-0/src/sys/kern/vnode_if.c:1493
#16 0xc0336925 in ufs_inactive (v=0xc4bffdc4)
at /mnt/obj/clean-2-0/src/sys/ufs/ufs/ufs_inode.c:97
#17 0xc03a92ac in VOP_INACTIVE (vp=0xc569a600, p=0xc4c00004)
at /mnt/obj/clean-2-0/src/sys/kern/vnode_if.c:1024
#18 0xc03a030c in vrele (vp=0xc569a600)
at /mnt/obj/clean-2-0/src/sys/kern/vfs_subr.c:1366
#19 0xc032ab3d in lfs_unmark_dirop (fs=0xc0dfb800)
at /mnt/obj/clean-2-0/src/sys/ufs/lfs/lfs_subr.c:389
#20 0xc0326b60 in lfs_segwrite (mp=<incomplete type>, flags=5)
---Type <return> to continue, or q <return> to quit---
at /mnt/obj/clean-2-0/src/sys/ufs/lfs/lfs_segment.c:700
#21 0xc032ffd7 in lfs_sync (mp=0xc0e0c000, waitfor=3, cred=0xc0b10e80,
p=0xc4c00004) at /mnt/obj/clean-2-0/src/sys/ufs/lfs/lfs_vfsops.c:1458
#22 0xc03af096 in sync_fsync (v=0xc4bfff14)
at /mnt/obj/clean-2-0/src/sys/miscfs/syncfs/sync_vnops.c:164
#23 0xc03a9054 in VOP_FSYNC (vp=0xc4e8443c, cred=0xc0b10e80, flags=8, offlo=0,
offhi=0, p=0xc4c00004) at /mnt/obj/clean-2-0/src/sys/kern/vnode_if.c:661
#24 0xc03aed7f in sched_sync (v=0xc4bd4528)
at /mnt/obj/clean-2-0/src/sys/sys/proc.h:386
(gdb) frame 11
#11 0xc03aa913 in genfs_getpages (v=0xc4bffae4)
at /mnt/obj/clean-2-0/src/sys/miscfs/genfs/genfs_vnops.c:650
(gdb) print origoffset
$1 = -4185982978164416512
I have still the coredump and debugging kernel, if this c
>How-To-Repeat:
not known.
>Fix:
none