[ 
https://issues.apache.org/jira/browse/HBASE-28330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sun Xin resolved HBASE-28330.
-----------------------------
    Fix Version/s: 2.6.0
                   2.5.8
       Resolution: Fixed

Pushed to branch-2, branch-2.5, branch-2.6. Thanks for the review [~zhangduo] 

> TestUnknownServers.testListUnknownServers is flaky in branch-2
> --------------------------------------------------------------
>
>                 Key: HBASE-28330
>                 URL: https://issues.apache.org/jira/browse/HBASE-28330
>             Project: HBase
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 2.5.7
>            Reporter: Sun Xin
>            Assignee: Sun Xin
>            Priority: Major
>             Fix For: 2.6.0, 2.5.8
>
>
> {code:java}
> [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.913 
> s <<< FAILURE! - in org.apache.hadoop.hbase.master.TestUnknownServers
> [ERROR] 
> org.apache.hadoop.hbase.master.TestUnknownServers.testListUnknownServers  
> Time elapsed: 0.204 s  <<< FAILURE!
> java.lang.AssertionError: expected:<1> but was:<2> {code}
> The value of TestUnknownServers.SLAVES is different between 
> [branch-2|https://github.com/apache/hbase/blob/68bc533f7116cedc681704b82319e5793b827621/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestUnknownServers.java#L44]
>  and 
> [master|https://github.com/apache/hbase/blob/b87b05c847f00c292664d894c21f83c73d48460d/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestUnknownServers.java#L43].
> It is 1 in master but 2 in branch-2.
> The RegionServer marked UNKNOWN_SERVER is the one that *holds regions* but is 
> not tracked by the ServerManager.
> Please see HMaster.getUnknownServers
> {code:java}
> private List<ServerName> getUnknownServers() {
>   if (serverManager != null) {
>     final Set<ServerName> serverNames = 
> getAssignmentManager().getRegionStates().getRegionStates()
>       .stream().map(RegionState::getServerName).collect(Collectors.toSet());
>     final List<ServerName> unknownServerNames = serverNames.stream()
>       .filter(sn -> sn != null && 
> serverManager.isServerUnknown(sn)).collect(Collectors.toList());
>     return unknownServerNames;
>   }
>   return null;
> } {code}
> In UT TestUnknownServers.testListUnknownServers, we start a HBase cluster 
> with 2 RegionServer, if all region are assigned to ONE server, then only that 
> server is called UNKNOWN_SERVER, the UT will fail.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to