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

Ruyue Ma commented on HADOOP-6498:
----------------------------------

In Client.java->receiveResponse():

        Call call = calls.remove(id);

        int state = in.readInt();    
        if (state == Status.SUCCESS.state) {
          Writable value = ReflectionUtils.newInstance(valueClass, conf);
          value.readFields(in);               // if here throws exception,  who 
will wake up the current call's waiting thread? 
          call.setValue(value);
        } else if (state == Status.ERROR.state) {
          call.setException(new RemoteException(WritableUtils.readString(in),
                                                WritableUtils.readString(in)));
        } else if (state == Status.FATAL.state) {
          // Close the connection
          markClosed(new RemoteException(WritableUtils.readString(in), 
                                         WritableUtils.readString(in)));
        }

> IPC client  bug may cause rpc call hang
> ---------------------------------------
>
>                 Key: HADOOP-6498
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6498
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: ipc
>    Affects Versions: 0.18.3, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1
>            Reporter: Ruyue Ma
>            Assignee: Ruyue Ma
>            Priority: Critical
>             Fix For: 0.21.0
>
>         Attachments: hadoop-6498.patch
>
>
> I can reproduce some rpc call  hang bug when connection thread of ipc client 
> receives response for outstanding call. 
> The stacks when hang occurs (TaskTracker):
>   Waiting on org.apache.hadoop.ipc.client$c...@1c3cbb4b
>   Stack:
>     java.lang.Object.wait(Native Method)
>     java.lang.Object.wait(Object.java:485)
>     org.apache.hadoop.ipc.Client.call(Client.java:691)
>     org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
>     org.apache.hadoop.mapred.$Proxy4.heartbeat(Unknown Source)
>     
> org.apache.hadoop.mapred.TaskTracker.transmitHeartBeat(TaskTracker.java:1250)
>     org.apache.hadoop.mapred.TaskTracker.offerService(TaskTracker.java:1082)
>     org.apache.hadoop.mapred.TaskTracker.run(TaskTracker.java:1785)
>     org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:2796)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to