[ https://issues.apache.org/jira/browse/HADOOP-8980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13488970#comment-13488970 ]
Chris Nauroth commented on HADOOP-8980: --------------------------------------- {{TestRPC.testErrorMsgForInsecureClient}} fails due to a race condition between {{RPC.Server.start}} initialization of its internal {{Listener}} and {{Reader}} threads and the test code calling {{countThreads}} to look for {{Reader}} stack frames as evidence that it's actually running. Inserting a sleep call made the test pass, though of course this would be a non-deterministic solution. Question for anyone in the community: is there any expectation that {{org.apache.hadoop.ipc.RPC.Server.start}} is synchronous, by which I mean that immediately after calling {{Server.start}}, the caller expects that startup has completed and the server is ready to receive requests? If yes, then we need to fix {{Server.start}} to block until full initialization. If no, then we need to fix the test to poll for completion of startup instead of immediately asserting that it's started. For {{TestRPC.testErrorMsgForInsecureClient}}, my best theory right now is that there is a race condition between {{Connection.readAndProcess}} calling {{responder.doRespond(authFailedCall)}} and {{Reader.doRead}} closing the connection, thus causing the {{IOException}} on the client side shown above when the client tries to read. > TestRPC fails on Windows > ------------------------ > > Key: HADOOP-8980 > URL: https://issues.apache.org/jira/browse/HADOOP-8980 > Project: Hadoop Common > Issue Type: Bug > Components: ipc > Affects Versions: trunk-win > Reporter: Chris Nauroth > Assignee: Chris Nauroth > > This failure may indicate a difference in socket handling on Windows. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira