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

Bryan Beaudreault updated HBASE-26790:
--------------------------------------
    Labels: patch-available  (was: )
    Status: Patch Available  (was: Open)

Just pushed [https://github.com/apache/hbase/pull/4565]

Excluding the null servername locations from the getAllRegionLocations response 
is incorrect, since the regions do exist just not yet assigned. Throwing an 
exception assumes too much about the intent of the caller. So I decided to 
simply not cache locations with null servername, since that's really the only 
problem here.

> getAllRegionLocations can cache locations with null hostname
> ------------------------------------------------------------
>
>                 Key: HBASE-26790
>                 URL: https://issues.apache.org/jira/browse/HBASE-26790
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Bryan Beaudreault
>            Assignee: Bryan Beaudreault
>            Priority: Major
>              Labels: patch-available
>             Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> RegionLocator methods typically delegate to 
> ConnectionImplementation.locateRegion, which throws a 
> NoServerForRegionException if the located region's serverName is null. 
> RegionLocator.getAllRegionLocations does not go through that path, instead 
> caching all returned region locations without any validation. This can result 
> in a "dirty" meta cache, since clients do not expect to have null serverNames 
> in the meta cache. We should add the same throwing of 
> NoServerForRegionException to this method as used in the others. Or at least 
> we should not cache the result if the serverName is null.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to