[
https://issues.apache.org/jira/browse/PHOENIX-7983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tanuj Khurana resolved PHOENIX-7983.
------------------------------------
Resolution: Fixed
> Key ReplicationLogGroup cache on (port, startcode) instead of host-inclusive
> ServerName
> ---------------------------------------------------------------------------------------
>
> Key: PHOENIX-7983
> URL: https://issues.apache.org/jira/browse/PHOENIX-7983
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Tanuj Khurana
> Assignee: Tanuj Khurana
> Priority: Major
>
> The INSTANCES cache in ReplicationLogGroup is keyed on
> serverName.getServerName() + "|" + haGroupName, where getServerName()
> includes the hostname. The same physical RegionServer can be observed under
> two ServerName spellings that differ only in host:
> - a declared FQDN (from hbase.unsafe.regionserver.hostname), and
> - the pod IP the master hands back at reportForDuty when reverse-DNS is
> enabled.
> Different coprocessor environments surface different spellings for the same
> server — the prewarm path (PhoenixRegionServerEndpoint) versus the write path
> (IndexRegionObserver). As a result, one logical replication group was split
> into two independent ReplicationLogGroup instances, each with its own
> Disruptor and sequence counter, for a single RegionServer.
> Fix
> Key the cache on (port, startcode), which excludes the host. This is a safe
> discriminator:
> - Two distinct live RegionServers can never share a port on the same host at
> the same time, so mini-cluster ITs running several RegionServers in one JVM
> stay distinct (each binds its own ephemeral port).
> - The single-RS production/kind case collapses the FQDN/IP spellings into one
> entry.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)