Under JRuby any thrift socket that doesn't connect immediately will result in a connection timeout.
Under MRI IO.select returns an array of IO objects.
Under JRuby IO.select returns nil, even when an object is ready.
Connections to a cassandra instance on localhost will usually be successful, as socket.connect_nonblock actually connects synchronously.
The following code fails with no pause under JRuby (but works under MRI) when connecting to a remote cassandra cluster: