hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13995) ServerName is not fully case insensitive
Date Wed, 01 Jul 2015 21:35:05 GMT

    [ https://issues.apache.org/jira/browse/HBASE-13995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14611033#comment-14611033

Hudson commented on HBASE-13995:

SUCCESS: Integrated in HBase-0.98 #1044 (See [https://builds.apache.org/job/HBase-0.98/1044/])
HBASE-13995 ServerName is not fully case insensitive (matteo.bertozzi: rev 4384daea2531d05d0ca16d9016b5316beb4e3fb5)
* hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerName.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/ServerName.java

> ServerName is not fully case insensitive
> ----------------------------------------
>                 Key: HBASE-13995
>                 URL: https://issues.apache.org/jira/browse/HBASE-13995
>             Project: HBase
>          Issue Type: Bug
>          Components: Region Assignment
>    Affects Versions: 2.0.0, 1.2.0,,,
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>             Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2
>         Attachments: HBASE-13995-v0.patch, HBASE-13995-v0.patch
> we ended up with two ServerName with different cases, AAA and aaa.
> Trying to create a table, every once in a while, we ended up with the region lost and
not assigned. 
> BaseLoadBalancer.roundRobinAssignment() goes through each server and create a map with
what to assign to them.
> We had to server on the list AAA and aaa which are the same machine, the problem is that
the round robin now is assigning an empty list to one of the two. so depending on the order
we ended up with a region not assigned.
> ServerName equals() does the case insensitive comparison but the hashCode() is done on
a case sensitive server name, so the Map in ServerManager will never hit the item and compare
it using equals, so we end up with two entries that are the same server. similar thing for
ServerName.isSameHostnameAndPort() where we don't check for cases

This message was sent by Atlassian JIRA

View raw message