On Wed, Jul 30, 2008 at 3:29 PM, Tom Christiansen <tchrist@perl.com> wrote: > Once I'd installed 5.10.0, the following start-up line in my .tcshrc > hangs forever with perl running unchecked until I kill it--but only about > one time in 30 or 100, or some high number I can't count. > > set path = `echo $path | tr ' ' '\12' | perl -nle 'print if -d and ($dev,$ino) = stat(_) and not $seen{$dev,$ino}++'` > > Specifically, the perl line is > > perl -nle 'print if -d and ($dev,$ino) = stat(_) and not $seen{$dev,$ino}++' > > The failure never, ever happened before 5.10, and now it happens > a few times a day (I shell out to {!}afmt paragraphs in vi.) > > What may have changed in 5.10 to cause that line to execute > differently? One difference with 5.10 is that PerlIO uses Unix I/O as its lowest layer rather than stdio, so your print statement is probably doing a write() rather than an fwrite(). I have no idea whether that's related to your problem, but it is a difference. > Jul 30 13:54:51 chthon savecore: reboot after panic: kernel diagnostic assertion "uvmexp.swpgonly <= uvmexp.swpages" failed: file "/usr/src/sys/uvm/uvm_pdaemon.c", line 581 > > If it is the page daemon having VM problems, I wonder why? My real memory > usage is <50% total, and swap is <10% total, so I don't know what's messing up. I believe most pipe() implementations use shared memory, which might or might not involve the paging daemon, and there are more probably quite a few more possibilities than simply running out of page file.