[ https://issues.apache.org/jira/browse/HDFS-13359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yiqun Lin updated HDFS-13359: ----------------------------- Description: DataXceiver hungs due to the lock that locked by {{FsDatasetImpl#getBlockInputStream}} (have attached stack). {code:java} @Override // FsDatasetSpi public InputStream getBlockInputStream(ExtendedBlock b, long seekOffset) throws IOException { ReplicaInfo info; synchronized(this) { info = volumeMap.get(b.getBlockPoolId(), b.getLocalBlock()); } ... } {code} The lock {{synchronized(this)}} used here is expensive, there is already one {{AutoCloseableLock}} type lock defined for {{ReplicaMap}}. We can use it instead. was: DataXceiver hungs due to the lock that locked by {{FsDatasetImpl#getBlockInputStream}}. !stack.jpg! {code:java} @Override // FsDatasetSpi public InputStream getBlockInputStream(ExtendedBlock b, long seekOffset) throws IOException { ReplicaInfo info; synchronized(this) { info = volumeMap.get(b.getBlockPoolId(), b.getLocalBlock()); } ... } {code} The lock {{synchronized(this)}} used here is expensive, there is already one {{AutoCloseableLock}} type lock defined for {{ReplicaMap}}. We can use it instead. > DataXceiver hungs due to the lock in FsDatasetImpl#getBlockInputStream > ---------------------------------------------------------------------- > > Key: HDFS-13359 > URL: https://issues.apache.org/jira/browse/HDFS-13359 > Project: Hadoop HDFS > Issue Type: Bug > Components: datanode > Affects Versions: 2.7.1 > Reporter: Yiqun Lin > Assignee: Yiqun Lin > Priority: Major > Attachments: HDFS-13359.001.patch, stack.jpg > > > DataXceiver hungs due to the lock that locked by > {{FsDatasetImpl#getBlockInputStream}} (have attached stack). > {code:java} > @Override // FsDatasetSpi > public InputStream getBlockInputStream(ExtendedBlock b, > long seekOffset) throws IOException { > ReplicaInfo info; > synchronized(this) { > info = volumeMap.get(b.getBlockPoolId(), b.getLocalBlock()); > } > ... > } > {code} > The lock {{synchronized(this)}} used here is expensive, there is already one > {{AutoCloseableLock}} type lock defined for {{ReplicaMap}}. We can use it > instead. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org