This problem was originally mentioned in discussion on HADOOP-8980. When calling RPC#Server#start, initialization of the server's internal Listener and Reader threads happens in the background. This initialization is not guaranteed to complete by the time the caller returns from RPC#Server#start. This may be misleading to a caller that expects the server has been fully initialized. This problem sometimes manifests as a test failure in TestRPC#testStopsAllThreads. This test looks at the stack frames of all running threads, expecting to find the Listener and Reader threads, but sometimes it doesn't find them.