comnetwork commented on a change in pull request #2055:
URL: https://github.com/apache/hbase/pull/2055#discussion_r454927352



##########
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java
##########
@@ -59,7 +59,7 @@
 
   private final Class<? extends Channel> channelClass;
 
-  private AsyncFSOutput output;
+  private volatile AsyncFSOutput output;

Review comment:
       Yes ,the  problem description  is :
   
https://issues.apache.org/jira/browse/HBASE-24625?focusedCommentId=17152610&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17152610
   
   In my opinion,` AsyncProtobufLogWriter.getSyncedLength` is just meaningful 
when the WAL file is current writing, once  `AsyncProtobufLogWriter` is 
closed(BTW, `AsyncProtobufLogWriter.output` is null),  upperlayer code seems  
no need to call this method, if upperlayer code still call this method after 
closed, it may indicates some  synchronization error or other.
   
    If we allow to call `getSyncedLength` after closing, we should save the 
`syncedLength` when  `AsyncProtobufLogWriter.close` , or else `getSyncedLength` 
will throw `NullPointException` or just return 0, both are unexpected and may 
cause upperlayer code error. 
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to