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)

Reply via email to