This is a hard one, because I can't reproduce it except with one of my apps that's already doing it.
In an app, I have a TCPSocket that connects to an IRC server. I'm also running a TCPServer to interface with the outside world to do some things. I have no threads, and a main loop that revolves around IO.select. My app gets to the point where select is being called with [[TCPServer, TCPSocketA], [TCPSocketA], ]. The return I get is something that I don't think is supposed to happen, and looks like [, [nil], ]. If I disable the TCPServer, everything works as expected.
The exact code I'm running is available at https://github.com/malkier/kythera/tree/jruby