Lijin Bin created HBASE-23231:
---------------------------------
Summary: ReplicationSource do not update metrics when refresh
Key: HBASE-23231
URL: https://issues.apache.org/jira/browse/HBASE-23231
Project: HBase
Issue Type: Bug
Affects Versions: 2.2.2
Reporter: Lijin Bin
Assignee: Lijin Bin
When replication refresh to new state, it will create a new source and
terminate the old source and replace the old source with new source.
{code}
public void refreshSources(String peerId) throws IOException {
String terminateMessage = "Peer " + peerId +
" state or config changed. Will close the previous replication source and
open a new one";
ReplicationPeer peer = replicationPeers.getPeer(peerId);
ReplicationSourceInterface src = createSource(peerId, peer);
// synchronized on latestPaths to avoid missing the new log
synchronized (this.latestPaths) {
ReplicationSourceInterface toRemove = this.sources.put(peerId, src);
if (toRemove != null) {
LOG.info("Terminate replication source for " + toRemove.getPeerId());
toRemove.terminate(terminateMessage);
}
for (NavigableSet<String> walsByGroup : walsById.get(peerId).values()) {
walsByGroup.forEach(wal -> src.enqueueLog(new Path(this.logDir, wal)));
}
}
LOG.info("Startup replication source for " + src.getPeerId());
src.startup();
{code}
terminate replication source will remove all metrics, current terminate
replication source be called after create new source which do init metrics, so
the result is there is no corresponding metrics after refresh replication
source.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)