This is an old revision of the document!
Cy Schubert
Email: cy@FreeBSD.org
With all the projects on the go I wish I could clone msyelf.
Things I am working on are:
- A working low level USB floppy format function.
- A number of screen port fix-ups.
- Various ports are confused between MIT and base system (Heimdal) Kerberos libraries.
- ZFS Tuning on small memory hardware. See ZFSTuningGuide.
The following should probably go into its own wiki page. I'll put it here when I have a better idea of what is happening:
- First ZFS problem:
- I'm getting ZFS corruption in a zpool on my testbed. Shortly prior to or after that I see console messages in regard to g_vfs_done errors with large offsets or negative offests on one of my UFS2 filesystems.
- Another issue I'm having is writing to a UFS filesystem on a ZVOL:
- Tracing pid 1234 tid 100106 td 0xc4f5c440
kdb_enter_why(c082d9e9,c082d9e9,c082c4e6,f3c28abc,0,…) at kdb_enter_why+0x3a
panic(c082c4e6,c0832f87,c082af39,d6,f3c28b0c,…) at panic+0x12c
_mtx_assert(cfd5f088,14,c082af39,d6,c08c2474,…) at _mtx_assert+0xbe
_lockmgr(cfd5f058,3002,cfd5f088,c4f5c440,c083a064,…) at _lockmgr+0x88
ffs_lock(f3c28b78,4,1002,1002,cfd5f000,…) at ffs_lock+0x91
VOP_LOCK1_APV(c088f3a0,f3c28b78,c083a064,327,cfd5f088,…) at VOP_LOCK1_APV+0xa5
_vn_lock(cfd5f000,1002,c4f5c440,c083a064,242,…) at _vn_lock+0xf8
vn_write(c519d828,f3c28c60,c50c7900,0,c4f5c440,…) at vn_write+0x15b
dofilewrite(f3c28c60,ffffffff,ffffffff,0,c519d828,…) at dofilewrite+0x95
kern_writev(c4f5c440,4,f3c28c60,8e23000,116bb,…) at kern_writev+0x58
write(c4f5c440,f3c28cfc,c,f3c28ccc,c08708e0,…) at write+0x4f
syscall(f3c28d38) at syscall+0x2b3
Xint0x80_syscall() at Xint0x80_syscall+0x20
— syscall (4, FreeBSD ELF32, write), eip = 0x281b5573, esp = 0xbfbfc0cc, ebp = 0xbfbfc0e8 —
- I managed to track down the problem. One other symptom was UFS filesystem corruption on the same system including g_vfs_done errors on UFS filesystems, which started shortly after ZFS was enabled and used on that server. Disabling powerd solved the instability problems. I had powerd running on a number of systems however on this one server, an AMD Sempron 3000+, ZFS issues ensued. The AMD Athalon X2 4200+ (dual processor), a 1.5 GHz Celeron, and a hyperthreaded 2.4 GHz P4 had no problems whatsoever with this configuration. Powerd does not work well with ZFS under some circumstances.
- Another panic but only on the testbed. The testbed is using a debug kernel. The other significant difference is that I nullfs mount /usr/local, /usr/compat, /var/lib, /var/db/ports, /var/db/rarian, and /var/db/pkg from the ZFS filesystem (to be able to test various ports and ports configurations). Directories from ZFS filesystems mounted on top of UFS filesystems using nullfs should be investigated.
- The problem turned out to be a hardware problem. At one time this machine had a number of ATA and SCSI disk drives installed. It now only has three ATA drives and one SCSI drive. One of the ATA drives was recently removed and placed into my firewall. There were a number of “Y” power connectors in use at the time. When I patched the computer back together the two “Y” connectors were connected in serial to this drive. When there was heavy random I/O load on that particular drive any filesystem (UFS and ZFS) was corrupted. This caused corruption within the kernel which in turn caused uncorrectable corruption to spread to filesystrems on other disks (except for the SCSI disk). The system would ultimately panic. When a debugging kernel was installed I could restart the system using another boot partition but without the debugging kernel, after it had panicked, it would hang on reboot. Removing the redundant “Y” connectors solved the problem cheaply.
Home Page: Komquats