Well. I discovered two things about Mongrel:
1. I’m unable to reproduce the hang in production mode.
2. In debug mode, it will tell you there’s a segfault somewhere in the Deep Libraries, and actually crash, instead of hanging.
I therefore decided I might try updating some libraries to see if perhaps a bug had gotten fixed in the past six months. So I updated my Rails, which required updating my Rubygems, which required – never mind. Anyway, it took me about four hours to get back to where I was and start Mongrel again and have it run. And indeed, there is some improvement: I no longer have to start it in debug mode to get it to crash instead of hanging. Yay for open source.
Here is the reported crash:
rubygems/gems/activesupport-2.1.0/lib/active_support/core_ext/blank.rb:45: [BUG] Segmentation fault
which leads us to this piece of code:
class String #:nodoc:
self !~ /\S/
which I must admit is depressingly non-communicative to me. I also have no idea why it should apparently work the first few times I load the page, then fail.