Duo Zhang created HBASE-28955: --------------------------------- Summary: Improve lease renew for FanOutOneBlockAsyncDFSOutput Key: HBASE-28955 URL: https://issues.apache.org/jira/browse/HBASE-28955 Project: HBase Issue Type: Bug Reporter: Duo Zhang
When working with hadoop 3.4.x, we saw this in the stdout file {noformat} Exception in thread "LeaseRenewer:zhangduo@home" java.lang.NullPointerException: Cannot invoke "org.apache.hadoop.hdfs.DFSOutputStream.getNamespace()" because "outputStream" is null at org.apache.hadoop.hdfs.DFSClient.getNamespaces(DFSClient.java:596) at org.apache.hadoop.hdfs.DFSClient.renewLease(DFSClient.java:618) at org.apache.hadoop.hdfs.client.impl.LeaseRenewer.renew(LeaseRenewer.java:425) at org.apache.hadoop.hdfs.client.impl.LeaseRenewer.run(LeaseRenewer.java:445) at org.apache.hadoop.hdfs.client.impl.LeaseRenewer.access$800(LeaseRenewer.java:77) at org.apache.hadoop.hdfs.client.impl.LeaseRenewer$1.run(LeaseRenewer.java:336) at java.base/java.lang.Thread.run(Thread.java:840) {noformat} This is because in newer DFSClient implementation, we need to pass namespace when renewer lease so we can not just pass null as DFSOutputStream when calling DFSClient.beginFileLease. We should find a way to deal with it. -- This message was sent by Atlassian Jira (v8.20.10#820010)