You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "guangyi lu (JIRA)" <ji...@apache.org> on 2018/12/11 12:11:00 UTC

[jira] [Commented] (HDFS-14074) DataNode runs async disk checks maybe throws NullPointerException, and DataNode failed to register to NameSpace.

    [ https://issues.apache.org/jira/browse/HDFS-14074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16716973#comment-16716973 ] 

guangyi lu commented on HDFS-14074:
-----------------------------------

ok,i think your method is better than mine.
I will fix it and put the patch. 
thank you~

> DataNode runs async disk checks  maybe  throws NullPointerException, and DataNode failed to register to NameSpace.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-14074
>                 URL: https://issues.apache.org/jira/browse/HDFS-14074
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs
>    Affects Versions: 2.8.0, 3.0.0
>         Environment: hadoop-2.7.3, hadoop-2.8.0
>            Reporter: guangyi lu
>            Priority: Major
>              Labels: HDFS, HDFS-11114
>             Fix For: 2.8.0, 2.7.3, 3.0.0
>
>         Attachments: HDFS-14074.patch, WechatIMG83.jpeg
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> In ThrottledAsyncChecker class,it members of the completedChecks is WeakHashMap, its definition is as follows:
>       this.completedChecks = new WeakHashMap<>();
> and one of its uses is as follows in schedule method:
>      if (completedChecks.containsKey(target)) {  
>       // here may be happen garbage collection,and result may be null.
>        final LastCheckResult<V> result = completedChecks.get(target);          
>        final long msSinceLastCheck = timer.monotonicNow() - result.completedAt;    
>        。。。。
> }
> after  "completedChecks.containsKey(target)",  may be happen garbage collection,  and result may be null.
> the solution is:
> this.completedChecks = new ReferenceMap(1, 1);
> or
>  this.completedChecks = new HashMap<>();
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org