When a RS has hostname with uppercase letter, there are two RS entries in master
--------------------------------------------------------------------------------
Key: HBASE-4074
URL: https://issues.apache.org/jira/browse/HBASE-4074
Project: HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.90.3, 0.90.2, 0.90.1
Reporter: Weihua Jiang
When a RS has uppercase letter in its hostname, e.g.
Harpertown08-15.sh.intel.com. Then, there will be two RS entries in master
report, they are
harpertown08-15.sh.intel.com
Harpertown08-15.sh.intel.com
This leads to wrong region allocation.
This problem is caused by the implementation of java.net.InetSocketAddress.
The logic is:
1. RS Harpertown08-15.sh.intel.com sends its DNS resolved hostname
harpertown08-15.sh.intel.com to master for registration in
HRegionServer.reportForDuty().
2. Master handles it and returns harpertown08-15.sh.intel.com via
HServerAddress object to RS to notify it this new name (actually the same as
the one reported by RS).
3. HServerAddress deserialize this object by first read out hostname as string
("harpertown08-15.sh.intel.com") and construct a InetSocketAddress object.
4. RS get the new name by call this InetSocketAddress.getHostName() method
which returns Harpertown08-15.sh.intel.com instead.
5. In latter hearbeat communication (HRegionServer.tryRegionServerReport()), RS
uses this new name (Harpertown08-15.sh.intel.com) to report to master and
master regard it as a new RS. Thus, two RS entries exist.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira