When a valve throws an unhandled exception during run time, it seems like the connector does not release the socket immediately. If a number of these instances occur, we get into a state where, unless the socket timeout is not reached, it is not possible to get another connection to the web server. The server starts returning HTTP 503 in this case.
Can you provide us with steps to reproduce this, please?
I have tested this using JMeter with the latest code from SVN and the number of threads remains roughly equal to the number of simultaneous connections. Therefore, as far as I can tell this has been fixed. Be aware that another 5.0.x release is unlikely.