Soft update panic while running perl 5.12 tests
Dimitry Andric
dim at FreeBSD.org
Wed Sep 29 14:32:55 UTC 2010
Hi,
I just encountered the following soft update panic while running perl
5.12's tests:
panic: indir_trunc: Index out of range -148 parent -2061 lbn -305164
cpuid = 3
KDB: enter: panic
[ thread pid 19 tid 100047 ]
Stopped at kdb_enter+0x3a: movl $0,kdb_why
db> bt
Tracing pid 19 tid 100047 td 0xc72e9b40
kdb_enter(c0cd6a90,c0cd6a90,c0cfe8ab,e6be2b58,3,...) at kdb_enter+0x3a
panic(c0cfe8ab,ffffff6c,fffff7f3,ffffffff,fffb57f4,...) at panic+0x136
indir_trunc(fffff7f3,ffffffff,c85507c0,c834d200,c733de00,...) at indir_trunc+0x4be
handle_workitem_indirblk(4,c0cd520e,df,c834d200,c834d200,...) at handle_workitem_indirblk+0x64
handle_workitem_freeblocks(0,e6be2c74,2,5dc,1e0,...) at handle_workitem_freeblocks+0x95
process_worklist_item(c0fb2f98,0,c0cfdf8d,54a,c72e9b40,...) at process_worklist_item+0x21c
softdep_process_worklist(c732aca8,0,c0cfdf8d,4cd,64,...) at softdep_process_worklist+0x8c
softdep_flush(0,e6be2d28,c0cd1c8a,349,c72ed550,...) at softdep_flush+0x2a0
fork_exit(c0afb670,0,e6be2d28) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xe6be2d60, ebp = 0 ---
It is consistently reproducible. This is on a -current system, at
r213139, on i386. Settings for the affected filesystem:
tunefs: POSIX.1e ACLs: (-a) disabled
tunefs: NFSv4 ACLs: (-N) disabled
tunefs: MAC multilabel: (-l) disabled
tunefs: soft updates: (-n) enabled
tunefs: soft update journaling: (-j) enabled
tunefs: gjournal: (-J) disabled
tunefs: maximum blocks per file in a cylinder group: (-e) 2048
tunefs: average file size: (-f) 16384
tunefs: average number of files in a directory: (-s) 64
tunefs: minimum percentage of free space: (-m) 8%
tunefs: optimization preference: (-o) time
tunefs: volume label: (-L) dimtest1
The panic is apparently caused by perl's "op/lfs.t" test, which tests
perlio with big files. You can test it by building the perl 5.12 port,
and then running:
cd /usr/ports/lang/perl5.12/work/perl-5.12.2/t
../miniperl op/lfs.t
Alternatively, just run "make test" in /usr/ports/lang/perl5.12.
More information about the freebsd-current
mailing list