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

Bhallamudi Venkata Siva Kamesh updated DRILL-490:
-------------------------------------------------

    Attachment: DRILL-490.patch

Attaching a fix for this by checking whether *ep* is null or not. If affinity 
map is empty, it means no drill bit is running none of hosts where regions 
found. In that case assigning all drill bits as equal affinity.

Please review the code provide your comments.

> Possible nulls as keys and values while calculating affinity.
> -------------------------------------------------------------
>
>                 Key: DRILL-490
>                 URL: https://issues.apache.org/jira/browse/DRILL-490
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.0.0-milestone-1
>            Reporter: Bhallamudi Venkata Siva Kamesh
>         Attachments: DRILL-490.patch
>
>
> {code:title=HBaseGroupScan.java|borderStyle=solid}
> for (ServerName sn : regionsMap.values()) {
>       String host = sn.getHostname();
>       DrillbitEndpoint ep = endpointMap.get(host);
>       EndpointAffinity affinity = affinityMap.get(ep);
>       if (affinity == null) {
>         affinityMap.put(ep, new EndpointAffinity(ep, 1));
>       } else {
>         affinity.addAffinity(1);
>       }
> }
> {code}
> I think, from the above code if drill bits are not running nodes where 
> regions are present, we get *ep* as null. Because of this, affinity map 
> contains *null* as key and new EndpointAffinity(*null*, 1) as value. This 
> causes NPE at Wrapper.addEndpointAffinity.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to