hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gera Shegalov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-11295) RPC Server Reader thread can't shutdown if RPCCallQueue is full
Date Sat, 20 Dec 2014 01:20:13 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-11295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14254417#comment-14254417

Gera Shegalov commented on HADOOP-11295:

Thanks for updating the patch, [~mingma]!

A couple more comments, we are close. To reproduce the problem in your setup, we need 3 concurrent
clients. Thus we don't need to have wait loops after each individual {{clientX.start()}}.
So just after last {{client3.start}} we can wait until all threads are active using the {{TestRPC#countThreads}}
      while (countThreads("TestRPC$SleepRPCClient") != 3) {
After that we need to have another single sleep to be sure that the server-side problem is
reproduced instead of {{while (!client3.isAlive())}} loop.

{{if (proxy != null)}} is unnecessary because proxy is known to be non-null in the finally.

In {{SleepRPCClient#run}}, we should catch Throwable and LOG it instead of completely ignoring
the exception for better debugability.

> RPC Server Reader thread can't shutdown if RPCCallQueue is full
> ---------------------------------------------------------------
>                 Key: HADOOP-11295
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11295
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Ming Ma
>            Assignee: Ming Ma
>         Attachments: HADOOP-11295-2.patch, HADOOP-11295-3.patch, HADOOP-11295.patch
> If RPC server is asked to stop when RPCCallQueue is full, {{reader.join()}} will just
wait there. That is because
> 1. The reader thread is blocked on {{callQueue.put(call);}}.
> 2. When RPC server is asked to stop, it will interrupt all handler threads and thus no
threads will drain the callQueue.

This message was sent by Atlassian JIRA

View raw message