Disclaimer: I may be totally wrong about this. The actual event described was a few years ago, and may have accumulated some bit rot since then.
Some time ago, I was running a Perl script that used a great deal of memory; so much, in fact, that it hit its ulimit. As soon as that happened, the program would die without warning or error. Only by watching my memory consumption did I realize what was going on (this was back on Linux 2.0.x).
If your sort was indeed using too much memory and is hitting the ulimit, it might die without doing the Right Thing in terms of returning information to Perl, and possibly in turn shutting down your program. This doesn't explain why your previous command wouldn't execute, though.
On a Solaris system I used to work with, one of the tmp directories was also used for swap... that seems to be a fairly common practice. I'm betting it's that, as
joe++ said.
- strider( corinth );
--
Love justice; desire mercy.