NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/42616: tmpfs crashes on unmount after testing with "fsstress"
>Number: 42616
>Category: kern
>Synopsis: tmpfs crashes on unmount after testing with "fsstress"
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jan 13 22:20:00 +0000 2010
>Originator: Greg A. Woods
>Release: netbsd-4 2009/07/09
>Organization:
Planix, Inc.; Toronto, Ontario; Canada
>Environment:
System: 4.0_STABLE GENERIC.MP
Architecture: i386
Machine: i386 (Intel Pentium 4 with HTT enabled)
>Description:
After reading about FreeBSD importing tmpfs, and then getting
it to work reliably with the "fsstress" program, originally from
SGI, but also ported to DragonFly, I thought I'd try it on
NetBSD-4 to see if I should switch my production systems over to
using tmpfs yet or not.
tmpfs is definitely faster than mfs, and puts lots less load on
the system, but it still seems to be broken in netbsd-4, at
least on MP systems.
>How-To-Repeat:
run several iterations of fsstress (compiled with -DNO_XFS),
such as with:
mkdir /tmpfs
mount -t tmpfs -o -s512m,nodev,nosuid tmpfs /tmpfs
cd /tmpfs
cp ~/work/fsstress/fsstress .
for r in 0 1 2 3 4 5 6 7 8 9; do
./fsstress -n 1000 -p 4 -d test
rm -rf test
done
cd /
umount /tmpfs
in at least one test rm(1) complained something like this after
the first three or four runs (from memory):
rm: fts_read No such file or directory
ls(1) shows the "test" directory does still exist, but rm(1)
can't remove it.
The following panic occurs during the unmount operation:
panic: pool_destroy: pool busy: still out: 135
Stopped in pid 1489.1 (umount) at netbsd:cpu_Debugger+0x4:
popl %ebp
db{1}> trace
cpu_Debugger(c09807a2,d8c05af8,d8c05aec,202,c0a09d14) at
netbsd:cpu_Debugger+0x4
panic(c09b4160,87,34c,c04551a8,c40cb1c8) at netbsd:panic+0x155
tprintf_open(c40cb28c,0,d8c05b6c,c0316032,c40cb28c) at
netbsd:tprintf_open
tmpfs_str_pool_destroy(c40cb28c,d90b92f4,0,c048c00e,c0aa1fc0) at
netbsd:tmpfs_str_pool_destroy+0x12
tmpfs_unmount(c40ca000,0,d8b9c4bc,d8b9c4bc,24a) at
netbsd:tmpfs_unmount+0xf2
dounmount(c40ca000,0,d8b9c4bc,c09b65bc,213) at netbsd:dounmount+0x108
sys_unmount(d8b9c4bc,d8c05c48,d8c05c68,80717c4,8071000) at
netbsd:sys_unmount+0x162
syscall_plain() at netbsd:syscall_plain+0x1a8
--- syscall (number 22) ---
0x8048d0b:
db{1}> reboot
>Fix:
unknown -- problem may not even be directly in tmpfs.
If this is already fixed in netbsd-5 is there any chance of
getting the fix back-ported to netbsd-4?
(and if not, and if the bug is in tmpfs, perhaps the fix is
available in changes made to tmpfs for FreeBSD?)
Home |
Main Index |
Thread Index |
Old Index