[ 
https://issues.apache.org/jira/browse/HIVE-19785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aihua Xu updated HIVE-19785:
----------------------------
    Status: Patch Available  (was: Open)

patch-1: by analyzing the logic, when timeout is triggered, we need to cancel 
registerClient. Also, change setSuccess/setFailure to trySuccess/tryFailure 
since if the task already completes, we really can't change the status.

> Race condition when timeout task is invoked during SASL negotation
> ------------------------------------------------------------------
>
>                 Key: HIVE-19785
>                 URL: https://issues.apache.org/jira/browse/HIVE-19785
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Spark
>            Reporter: Sahil Takiar
>            Assignee: Aihua Xu
>            Priority: Major
>         Attachments: HIVE-19785.1.patch
>
>
> 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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to