fapifta opened a new pull request #3658:
URL: https://github.com/apache/hadoop/pull/3658


   ### Description of PR
   In the JIRA there is a long description about the problem, the TLDR is that 
if there are two DFSClient instance at the same time on the client side, the 
second one can not properly fall back to SIMPLE auth due to how the 
SaslRpcClient handles the fallback via an AtomicBoolean created by the 
DfsClient, and set by the hadoop.ipc.Client.
   
   The initial idea/solution was posted as #3579 where we had a long discussion 
with @symious about this solution and that solution, and the tradeoffs. After a 
while, I think I was convinced that this is a proper solution, and fits into 
the current system, so I am adding this PR to finally fix the issue.
   
   The solution is to add the AtomicBoolean fallbackToSimpleAuth which controls 
how/if the SaslRpcClient falls back to simple auth or not, to the ConnectionId 
class, and with that distinguish the connections of the two DfsClient based on 
the fallbackToSimpleAuth AtomicBoolean instance. If that is different, from any 
other connections' AtomicBoolean instance, then we will distinguish the 
connection, and with that we will initialize the value of fallbackToSimpleAuth 
properly.
   
   ### How was this patch tested?
   JUnit test added.
   The problem manifested itself as a failing HBase ExportSnapshot job, between 
two small clusters, one using Kerberos auth one using Simple auth. With this 
fix the ExportSnapshot job was able to run as well.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to