the filesystem deadlocks when installing a file to itself. a ktrace shows a strange sequence: 450 install CALL stat(0xefbfda0f,0xefbfd87c) 450 install NAMI "/var/tmp/xx" 450 install RET stat 0 450 install CALL stat(0xefbfda07,0xefbfd7ec) 450 install NAMI "termcap" 450 install RET stat 0 450 install CALL stat(0x4414,0xefbfd78c) 450 install NAMI "/var/tmp/xx/termcap" 450 install RET stat 0 450 install CALL unlink(0x4414) 450 install NAMI "/var/tmp/xx/termcap" 450 install RET unlink 0 450 install CALL open(0x4414,0x601,0x180) 450 install NAMI "/var/tmp/xx/termcap" 450 install RET open 3 450 install CALL open(0xefbfda07,0,0) 450 install NAMI "termcap" 450 install RET open 4 450 install CALL mmap(0,0x2c48e,0x1,0,0x4,0,0,0) 450 install RET mmap 134807552/0x8090000 450 install CALL write(0x3,0x8090000,0x2c48e) at this point, deadlock with ps -l reporting ufslk2 Fix: don't install a file to itself. How-To-Repeat: cd /tmp cp /etc/termcap . install -c -m 0644 termcap /tmp >lockup<
State Changed From-To: open->closed The bug was caused by a deadlock between the VM system and the buffer I/O system trying to acquire the same lock. Fixed in rev 1.21/1.22 of ufs_lock.c.