The cause is that inactivity timeout cause an async thread to call TransportConnection.stop() but it in turn tries to do a "transport.oneway(new ShutdownInfo());" before a transport.stop();
Since another thread is currently stuck in the oneway() call (due to the client having disconnected but the OS has not thrown an IOException up to us yet), our ShutdownInfo message blocks too. So in essence the InactivityMonitor is not currently shutitng down the failed connections.