[ 
https://issues.apache.org/jira/browse/HBASE-26406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sun Xin resolved HBASE-26406.
-----------------------------
    Fix Version/s: 2.4.9
                   3.0.0-alpha-2
       Resolution: Fixed

Pushed to master and 2.x branchs. Thank all for reviewing.

> Can not add peer replicating to non-HBase
> -----------------------------------------
>
>                 Key: HBASE-26406
>                 URL: https://issues.apache.org/jira/browse/HBASE-26406
>             Project: HBase
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 3.0.0-alpha-1, 2.4.0
>            Reporter: Sun Xin
>            Assignee: Sun Xin
>            Priority: Major
>             Fix For: 3.0.0-alpha-2, 2.4.9
>
>
> Failed to add a peer replicating to non-HBase(like MQ) by implementing custom 
> ReplicationEndpoint,  got exception like this in my UT: 
> {code:java}
> 2021-10-29T15:14:47,632 INFO  [RPCClient-NioEventLoopGroup-5-3] 
> client.RawAsyncHBaseAdmin$ReplicationProcedureBiConsumer(2761): Operation: 
> ADD_REPLICATION_PEER, peerId: 1 failed with Invalid cluster key: , should not 
> replicate to itself for 
> HBaseInterClusterReplicationEndpoint2021-10-29T15:14:47,632 INFO  
> [RPCClient-NioEventLoopGroup-5-3] 
> client.RawAsyncHBaseAdmin$ReplicationProcedureBiConsumer(2761): Operation: 
> ADD_REPLICATION_PEER, peerId: 1 failed with Invalid cluster key: , should not 
> replicate to itself for HBaseInterClusterReplicationEndpoint
> org.apache.hadoop.hbase.DoNotRetryIOException: Invalid cluster key: , should 
> not replicate to itself for HBaseInterClusterReplicationEndpoint
>  at java.lang.Thread.getStackTrace(Thread.java:1559) at 
> org.apache.hadoop.hbase.util.FutureUtils.setStackTrace(FutureUtils.java:130) 
> at org.apache.hadoop.hbase.util.FutureUtils.rethrow(FutureUtils.java:149) at 
> org.apache.hadoop.hbase.util.FutureUtils.get(FutureUtils.java:186) at 
> org.apache.hadoop.hbase.client.Admin.addReplicationPeer(Admin.java:1948) at 
> org.apache.hadoop.hbase.client.Admin.addReplicationPeer(Admin.java:1936) at 
> org.apache.hadoop.hbase.replication.TestNonHBaseReplicationEndpoint.test(TestNonHBaseReplicationEndpoint.java:97)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498) at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
>  at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>  at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
>  at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>  at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
> at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at 
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
>  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
>  at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
>  at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at 
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at 
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at 
> org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at 
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
> at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
> at org.apache.hadoop.hbase.SystemExitRule$1.evaluate(SystemExitRule.java:38) 
> at 
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:288)
>  at 
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:282)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
> java.lang.Thread.run(Thread.java:748) at --------Future.get--------(Unknown 
> Source) at 
> org.apache.hadoop.hbase.master.replication.ReplicationPeerManager.checkClusterId(ReplicationPeerManager.java:527)
>  at 
> org.apache.hadoop.hbase.master.replication.ReplicationPeerManager.checkPeerConfig(ReplicationPeerManager.java:367)
>  at 
> org.apache.hadoop.hbase.master.replication.ReplicationPeerManager.preAddPeer(ReplicationPeerManager.java:123)
>  at 
> org.apache.hadoop.hbase.master.replication.AddPeerProcedure.prePeerModification(AddPeerProcedure.java:101)
>  at 
> org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure.executeFromState(ModifyPeerProcedure.java:162)
>  at 
> org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure.executeFromState(ModifyPeerProcedure.java:43)
>  at 
> org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:190)
>  at 
> org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:953) at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1667)
>  at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1414)
>  at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$1100(ProcedureExecutor.java:78)
>  at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1981)
> {code}
> HBASE-24743 ignored this situation and introduced this bug.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to