[
https://issues.apache.org/jira/browse/HDFS-1965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13037113#comment-13037113
]
Tsz Wo (Nicholas), SZE commented on HDFS-1965:
----------------------------------------------
Okay, you mean this is a temporary fix. Sounds good. Some comments on the
patch:
- Instead of changing it to public, we could create add a utility method, say
in {{DFSTestUtil}}, for invoking the package private method.
{code}
+ /** Public only for tests */
+ public static ClientDatanodeProtocol createClientDatanodeProtocolProxy(
{code}
- How about putting {{confWithNoIpcIdle}} as a member field?
- Please use
{{CommonConfigurationKeysPublic.IPC_CLIENT_CONNECTION_MAXIDLETIME_KEY}} for
"ipc.client.connection.maxidletime".
- Please add a comment saying that this is a temporary fix and the
corresponding codes should be removed once {{stopProxy(..)}} is fixed.
> IPCs done using block token-based tickets can't reuse connections
> -----------------------------------------------------------------
>
> Key: HDFS-1965
> URL: https://issues.apache.org/jira/browse/HDFS-1965
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: security
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Priority: Critical
> Fix For: 0.22.0
>
> Attachments: hdfs-1965.txt, hdfs-1965.txt
>
>
> This is the reason that TestFileConcurrentReaders has been failing a lot.
> Reproducing a comment from HDFS-1057:
> The test has a thread which continually re-opens the file which is being
> written to. Since the file's in the middle of being written, it makes an RPC
> to the DataNode in order to determine the visible length of the file. This
> RPC is authenticated using the block token which came back in the
> LocatedBlocks object as the security ticket.
> When this RPC hits the IPC layer, it looks at its existing connections and
> sees none that can be re-used, since the block token differs between the two
> requesters. Hence, it reconnects, and we end up with hundreds or thousands of
> IPC connections to the datanode.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira