[ https://issues.apache.org/jira/browse/HBASE-20855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16546415#comment-16546415 ]
Hadoop QA commented on HBASE-20855: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} docker {color} | {color:red} 0m 3s{color} | {color:red} Docker failed to build yetus/hbase:1f3957d. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HBASE-20855 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12931922/HBASE-20855.branch-1.005.patch | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/13655/console | | Powered by | Apache Yetus 0.7.0 http://yetus.apache.org | This message was automatically generated. > PeerConfigTracker only support one listener will cause problem when there is > a recovered replication queue > ---------------------------------------------------------------------------------------------------------- > > Key: HBASE-20855 > URL: https://issues.apache.org/jira/browse/HBASE-20855 > Project: HBase > Issue Type: Bug > Affects Versions: 1.3.0, 1.4.0, 1.5.0 > Reporter: Jingyun Tian > Assignee: Jingyun Tian > Priority: Major > Attachments: HBASE-20855.branch-1.001.patch, > HBASE-20855.branch-1.002.patch, HBASE-20855.branch-1.003.patch, > HBASE-20855.branch-1.004.patch, HBASE-20855.branch-1.005.patch > > > {code} > public void init(Context context) throws IOException { > this.ctx = context; > if (this.ctx != null){ > ReplicationPeer peer = this.ctx.getReplicationPeer(); > if (peer != null){ > peer.trackPeerConfigChanges(this); > } else { > LOG.warn("Not tracking replication peer config changes for Peer Id " + > this.ctx.getPeerId() + > " because there's no such peer"); > } > } > } > {code} > As we know, replication source will set itself to the PeerConfigTracker in > ReplicationPeer. When there is one or more recovered queue, each queue will > generate a new replication source, But they share the same ReplicationPeer. > Then when it calls setListener, the new generated one will cover the older > one. Thus there will only has one ReplicationPeer that receive the peer > config change notify. > {code} > public synchronized void setListener(ReplicationPeerConfigListener listener){ > this.listener = listener; > } > {code} > > To solve this, PeerConfigTracker need to support multiple listener and > listener should be removed when the replication endpoint terminated. > I will upload a patch later with fix and UT. -- This message was sent by Atlassian JIRA (v7.6.3#76005)