Demo Program on how Finagle ChannelClosedExceptions may occur
Sample project sets up a trivial Finagle server and runs a configurable number of requests against it in parallel.
To compile the project, just say:
mvn clean install
To run the dmeo, say:
mvn exec:java -Dexec.args='n <count> -s <use_stats> -rt<read_timeout> -ct <connection_timeout>'
<count>the number of requests you wish to send. Defaults to 20.
<use_stats>true of false depending on if you want statistics or not. Defaults to true.
<read_timeout>server side read timeout (secs). Defaults to 60.
<connection_timeout>client side connection timeout (secs). Defaults to 60.
What you should see is success for small
<count>, failure with larger numbers.
Speculation: run the test on a (virtual) host with only one core and you'll see failures with ChannelClosedExceptions really fast.