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

Sneha Vijayarajan updated HADOOP-16852:
---------------------------------------
    Description: 
Issue seen by a customer:

The failed requests we were seeing in the AbfsClient logging actually never 
made it out over the wire. We have found that there’s an issue with ADLS 
passthrough and the 8 read ahead threads that ADLSv2 spawns in 
ReadBufferManager.java. We depend on thread local storage in order to get the 
right JWT token and those threads do not have the right information in their 
thread local storage. Thus, when they pick up a task from the read ahead queue 
they fail by throwing an AzureCredentialNotFoundException exception in 
AbfsRestOperation.executeHttpOperation() where it calls 
client.getAccessToken(). This exception is silently swallowed by the read ahead 
threads in ReadBufferWorker.run(). As a result, every read ahead attempt 
results in a failed executeHttpOperation(), but still calls 
AbfsClientThrottlingIntercept.updateMetrics() and contributes to throttling 
(despite not making it out over the wire). After the read aheads fail, the main 
task thread performs the read with the right thread local storage information 
and succeeds, but first sleeps for up to 10 seconds due to the throttling.

> ABFS: Send error back to client for Read Ahead request failure
> --------------------------------------------------------------
>
>                 Key: HADOOP-16852
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16852
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/azure
>    Affects Versions: 3.3.1
>            Reporter: Sneha Vijayarajan
>            Assignee: Sneha Vijayarajan
>            Priority: Major
>
> Issue seen by a customer:
> The failed requests we were seeing in the AbfsClient logging actually never 
> made it out over the wire. We have found that there’s an issue with ADLS 
> passthrough and the 8 read ahead threads that ADLSv2 spawns in 
> ReadBufferManager.java. We depend on thread local storage in order to get the 
> right JWT token and those threads do not have the right information in their 
> thread local storage. Thus, when they pick up a task from the read ahead 
> queue they fail by throwing an AzureCredentialNotFoundException exception in 
> AbfsRestOperation.executeHttpOperation() where it calls 
> client.getAccessToken(). This exception is silently swallowed by the read 
> ahead threads in ReadBufferWorker.run(). As a result, every read ahead 
> attempt results in a failed executeHttpOperation(), but still calls 
> AbfsClientThrottlingIntercept.updateMetrics() and contributes to throttling 
> (despite not making it out over the wire). After the read aheads fail, the 
> main task thread performs the read with the right thread local storage 
> information and succeeds, but first sleeps for up to 10 seconds due to the 
> throttling.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to