You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Xue Liu (JIRA)" <ji...@apache.org> on 2019/04/10 18:02:00 UTC

[jira] [Commented] (HDFS-8409) HDFS client RPC call throws "java.lang.IllegalStateException"

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

Xue Liu commented on HDFS-8409:
-------------------------------

We are also seeing a lot of this in our prod cluster. I think that this exception will be thrown if callId is not reset and then retry happens. Can someone take a further look at this? Thanks!

> HDFS client RPC call throws "java.lang.IllegalStateException"
> -------------------------------------------------------------
>
>                 Key: HDFS-8409
>                 URL: https://issues.apache.org/jira/browse/HDFS-8409
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs-client
>            Reporter: Juan Yu
>            Assignee: Juan Yu
>            Priority: Major
>         Attachments: HDFS-8409.001.patch, HDFS-8409.002.patch, HDFS-8409.003.patch
>
>
> When the HDFS client RPC calls need to retry, it sometimes throws "java.lang.IllegalStateException" and retry is aborted and cause the client call will fail.
> {code}
> Caused by: java.lang.IllegalStateException
> 	at com.google.common.base.Preconditions.checkState(Preconditions.java:129)
> 	at org.apache.hadoop.ipc.Client.setCallIdAndRetryCount(Client.java:116)
> 	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:99)
> 	at com.sun.proxy.$Proxy16.getFileInfo(Unknown Source)
> 	at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1912)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1089)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1085)
> 	at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1085)
> 	at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1400)
> {code}
> Here is the check that throws exception
> {code}
>   public static void setCallIdAndRetryCount(int cid, int rc) {
>       ...
>       Preconditions.checkState(callId.get() == null);
>   }
> {code}
> The RetryInvocationHandler tries to call it with not null callId and causes exception.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org