[ 
https://issues.apache.org/jira/browse/HDFS-14146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16719587#comment-16719587
 ] 

Erik Krogen edited comment on HDFS-14146 at 12/13/18 12:28 AM:
---------------------------------------------------------------

{quote}
I couldn't come up with an example (It would be great if you have one) that 
causing all the handlers to stuck yet, but certainly can see that some handlers 
get blocked when putting the call back, which is undesirable.
{quote}
Let's imagine that the call queue currently is completely full (with many 
requests which have a state ID in the future) and the listen queue is backing 
up. All of your handler threads start to grab items from the queue; for each 
item taken from the queue, the readers add new items, since the listen queue 
has backed up. By the time any of the handler threads try to call 
{{callQueue.put()}}, the call queue is already completely full because the 
readers have been inserting new items. I think the scenario that _all_ of the 
handlers become blocked is pretty unlikely since there are many more handler 
threads than readers, and the readers would have to consistently win races 
against the handlers to add items, but still, a NameNode deadlock is no joke :)


was (Author: xkrogen):
{quote}
I couldn't come up with an example (It would be great if you have one) that 
causing all the handlers to stuck yet, but certainly can see that some handlers 
get blocked when putting the call back, which is undesirable.
{quote}
Let's imagine that the call queue currently is completely full (with many 
requests which have a state ID in the future) and the listen queue is backing 
up. All of your handler threads start to grab items from the queue; for each 
item taken from the queue, the readers add new items, since the listen queue 
has backed up. By the time any of the handler threads try to call 
{{callQueue.put()}}, the call queue is already completely full because the 
readers have been inserting new items. I think the scenario is pretty unlikely 
since there are many more handler threads than readers, and the readers would 
have to consistently win races against the handlers to add items, but still, a 
NameNode deadlock is no joke :)

> Handle exception from internalQueueCall
> ---------------------------------------
>
>                 Key: HDFS-14146
>                 URL: https://issues.apache.org/jira/browse/HDFS-14146
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ipc
>            Reporter: Chao Sun
>            Assignee: Chao Sun
>            Priority: Critical
>         Attachments: HDFS-14146-HDFS-12943.000.patch
>
>
> When we re-queue RPC call, the {{internalQueueCall}} will potentially throw 
> exceptions (e.g., RPC backoff), which is then swallowed. This will cause the 
> RPC to be silently discarded without response to the client, which is not 
> good.



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

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

Reply via email to