[ https://issues.apache.org/jira/browse/HDFS-6227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14007546#comment-14007546 ]
Jing Zhao commented on HDFS-6227: --------------------------------- Thanks for the fix, [~cmccabe]! The current patch looks good to me. Only some minor comments: # Can we wrap the following check into a separate method in ShortCircuitReplica? {code} + if (!replica.getDataStream().getChannel().isOpen()) { + purgeReason = "purging replica because its data channel is closed."; + } else if (!replica.getMetaStream().getChannel().isOpen()) { + purgeReason = "purging replica because its meta channel is closed."; {code} # Let's add a "dfs.close()" at the end of the new unit test testPurgingClosedReplicas. # In testPurgingClosedReplicas, we may also want to call "sem.release()" if we catch a throwable other than ClosedByInterruptException. It is not necessary right now since we know we will catch a ClosedByInterruptException. But in case that some new code brings into another type of throwable, the test may get blocked for acquiring the semaphore. > ShortCircuitCache#unref should purge ShortCircuitReplicas whose streams have > been closed by java interrupts > ----------------------------------------------------------------------------------------------------------- > > Key: HDFS-6227 > URL: https://issues.apache.org/jira/browse/HDFS-6227 > Project: Hadoop HDFS > Issue Type: Bug > Affects Versions: 2.4.0 > Reporter: Jing Zhao > Assignee: Colin Patrick McCabe > Attachments: HDFS-6227.000.patch, HDFS-6227.001.patch, > ShortCircuitReadInterruption.test.patch > > > While running tests in a single node cluster, where short circuit read is > enabled and multiple threads may read the same file concurrently, one of the > read got ClosedChannelException and failed. Full exception trace see comment. -- This message was sent by Atlassian JIRA (v6.2#6252)