When RPC requests get interrupted, the sockets can end up stuck in CLOSE_WAIT state. After 3 are in this state, bitcoind is unable to respond to RPC requests. Happens with 0.8.6 and 0.9.0. And lasts far longer than rpctimeout would suggest.
$ lsof -p `pidof bitcoind` | grep 8332
bitcoind 872 bitcoin 23u IPv6 10179 0t0 TCP *:8332 (LISTEN)
bitcoind 872 bitcoin 30u IPv6 11153 0t0 TCP 107.101.212.239:8332->customer-GDL-125-2.megared.net.mx:61668 (CLOSE_WAIT)
bitcoind 872 bitcoin 38u IPv6 11243 0t0 TCP 107.101.212.239:8332->customer-GDL-125-2.megared.net.mx:61670 (CLOSE_WAIT)
Googling this issue, it seems lots of people have been bitten by it -- without any real solutions