Details
-
Sub-task
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
There is a race condition that leads to some extraneous exception messages when the timeout task is invoked in RpcServer.
If a timeout is triggered by RpcServer#registerClient the method will remove the clientId from pendingClients. However, if the SASL negotiation is in progress when the timeout task is invoked, then SaslServerHandler#update will throw an IllegalArgumentException complaining that it can't find the clientId in the map of pendingClients.
The timeout still succeeds, but the logging is confusing and multiple exceptions make this difficult to debug.