Skip to content

HBASE-23647: Make MasterRegistry the default impl. - #1039

Merged
apurtell merged 2 commits into
apache:HBASE-18095/client-locate-meta-no-zookeeperfrom
bharathv:HBASE-23647
Jan 27, 2020
Merged

HBASE-23647: Make MasterRegistry the default impl.#1039
apurtell merged 2 commits into
apache:HBASE-18095/client-locate-meta-no-zookeeperfrom
bharathv:HBASE-23647

Conversation

@bharathv

Copy link
Copy Markdown
Contributor

No description provided.

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not merge this yet. Lets see what breaks in the PR jenkins run.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec2m 45sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 1 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 54sMaven dependency ordering for branch
+1 💚mvninstall7m 34sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 42sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 24sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars5m 43sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 6sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs5m 37sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 58sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall7m 0sthe patch passed
+1 💚compile1m 48sthe patch passed
+1 💚javac1m 48sthe patch passed
+1 💚checkstyle2m 25sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars6m 2spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck23m 14sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 11sthe patch passed
+1 💚findbugs7m 37sthe patch passed
_ Other Tests _
+1 💚unit1m 57shbase-client in the patch passed.
-1 ❌unit232m 7shbase-server in the patch failed.
+1 💚asflicense1m 5sThe patch does not generate ASF License warnings.
323m 27s
ReasonTests
Failed junit testshadoop.hbase.security.access.TestWithDisabledAuthorization
hadoop.hbase.client.TestAsyncMetaRegionLocator
hadoop.hbase.client.TestReplicaWithCluster
hadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleAsyncWAL
hadoop.hbase.client.TestReplicasClient
hadoop.hbase.client.TestAsyncAdminMasterSwitch
hadoop.hbase.client.TestFromClientSideWithCoprocessor
hadoop.hbase.security.token.TestGenerateDelegationToken
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedNewOp
hadoop.hbase.ipc.TestRpcClientLeaks
hadoop.hbase.regionserver.TestRegionServerNoMaster
hadoop.hbase.master.TestMasterNoCluster
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedWithRecovery
hadoop.hbase.replication.TestReplicationSyncUpTool
hadoop.hbase.regionserver.TestClusterId
hadoop.hbase.TestHBaseTestingUtility
hadoop.hbase.replication.TestReplicationStatusBothNormalAndRecoveryLagging
hadoop.hbase.master.TestRollingRestart
hadoop.hbase.master.TestMasterShutdown
hadoop.hbase.master.TestMigrateNamespaceTable
hadoop.hbase.security.access.TestAccessController
hadoop.hbase.client.TestMetaWithReplicas
hadoop.hbase.replication.TestReplicationStatusAfterLagging
hadoop.hbase.security.token.TestTokenAuthentication
hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpointNoMaster
hadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleWAL
hadoop.hbase.master.assignment.TestRegionSplit
hadoop.hbase.replication.TestReplicationDroppedTables
hadoop.hbase.security.access.TestSnapshotScannerHDFSAclController
hadoop.hbase.namespace.TestNamespaceAuditor
hadoop.hbase.master.TestMasterOperationsForRegionReplicas
hadoop.hbase.replication.TestReplicationDisableInactivePeer
hadoop.hbase.client.TestConnection
hadoop.hbase.client.TestFromClientSide
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedNoOps
hadoop.hbase.security.token.TestDelegationTokenWithEncryption
hadoop.hbase.client.TestAsyncReplicationAdminApiWithClusters
hadoop.hbase.TestClusterBootOrder
hadoop.hbase.client.TestClientTimeouts
hadoop.hbase.replication.TestReplicationSyncUpToolWithBulkLoadedData
hadoop.hbase.regionserver.TestSplitTransactionOnCluster
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux c7f1ede18924 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/testReport/
Max. process+thread count5027 (vs. ulimit of 10000)
modulesC: hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathv

Copy link
Copy Markdown
ContributorAuthor

A bunch of tests failed with "Connection Refused" errors on the master ports serving the RPCs. Let me dig into the logs and update here.

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleans up a subset of test failures. Pushing it out to reduce the noise in the test report. Let's see how it looks like after this change.

Majority of the remaining failures have something to do with the killing of the only active master and that doesn't go well with master based registry implementation. I'm still thinking on how best to fix those cases while still retaining the test coverage.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 22sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 5 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 35sMaven dependency ordering for branch
+1 💚mvninstall5m 48sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 46sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 30sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars5m 5sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 18sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs5m 3sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 57sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall5m 40sthe patch passed
+1 💚compile1m 45sthe patch passed
+1 💚javac1m 45sthe patch passed
+1 💚checkstyle0m 26shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 34sThe patch passed checkstyle in hbase-client
-1 ❌checkstyle1m 28shbase-server: The patch generated 2 new + 32 unchanged - 1 fixed = 34 total (was 33)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 2spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 20sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 15sthe patch passed
+1 💚findbugs7m 12sthe patch passed
_ Other Tests _
+1 💚unit3m 9shbase-common in the patch passed.
+1 💚unit1m 55shbase-client in the patch passed.
-1 ❌unit220m 38shbase-server in the patch failed.
+1 💚asflicense1m 45sThe patch does not generate ASF License warnings.
301m 15s
ReasonTests
Failed junit testshadoop.hbase.client.TestAsyncMetaRegionLocator
hadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleAsyncWAL
hadoop.hbase.client.TestReplicasClient
hadoop.hbase.security.token.TestGenerateDelegationToken
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedNewOp
hadoop.hbase.ipc.TestRpcClientLeaks
hadoop.hbase.regionserver.TestRegionServerNoMaster
hadoop.hbase.master.TestMasterNoCluster
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedWithRecovery
hadoop.hbase.replication.TestReplicationSyncUpTool
hadoop.hbase.regionserver.TestClusterId
hadoop.hbase.replication.TestReplicationStatusBothNormalAndRecoveryLagging
hadoop.hbase.master.TestMigrateNamespaceTable
hadoop.hbase.client.TestMetaWithReplicas
hadoop.hbase.replication.TestReplicationStatusAfterLagging
hadoop.hbase.security.token.TestTokenAuthentication
hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpointNoMaster
hadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleWAL
hadoop.hbase.master.assignment.TestRegionSplit
hadoop.hbase.replication.TestReplicationDroppedTables
hadoop.hbase.namespace.TestNamespaceAuditor
hadoop.hbase.master.TestMasterOperationsForRegionReplicas
hadoop.hbase.replication.TestReplicationDisableInactivePeer
hadoop.hbase.client.TestConnection
hadoop.hbase.client.TestFromClientSide
hadoop.hbase.replication.TestReplicationStatusSourceStartedTargetStoppedNoOps
hadoop.hbase.security.token.TestDelegationTokenWithEncryption
hadoop.hbase.TestClusterBootOrder
hadoop.hbase.replication.TestReplicationSyncUpToolWithBulkLoadedData
hadoop.hbase.regionserver.TestSplitTransactionOnCluster
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux badb4f70380b 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
checkstylehttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/artifact/out/diff-checkstyle-hbase-server.txt
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/testReport/
Max. process+thread count4812 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Latest patch fixes most tests except a few replication tests that I'm still debugging. Meanwhile, want to do a quick run to make sure nothing else is broken.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 19sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 40 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 39sMaven dependency ordering for branch
+1 💚mvninstall5m 42sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 44sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 34sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars4m 57sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 19sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 56sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 48sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall5m 32sthe patch passed
+1 💚compile1m 44sthe patch passed
+1 💚javac1m 44sthe patch passed
+1 💚checkstyle0m 25shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 35sThe patch passed checkstyle in hbase-client
-1 ❌checkstyle1m 42shbase-server: The patch generated 9 new + 450 unchanged - 2 fixed = 459 total (was 452)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 3spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 13sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 16sthe patch passed
+1 💚findbugs7m 16sthe patch passed
_ Other Tests _
+1 💚unit3m 20shbase-common in the patch passed.
+1 💚unit1m 59shbase-client in the patch passed.
-1 ❌unit200m 42shbase-server in the patch failed.
+1 💚asflicense1m 32sThe patch does not generate ASF License warnings.
281m 4s
ReasonTests
Failed junit testshadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleAsyncWAL
hadoop.hbase.replication.TestReplicationSyncUpTool
hadoop.hbase.master.TestMasterShutdown
hadoop.hbase.master.assignment.TestRegionMoveAndAbandon
hadoop.hbase.replication.multiwal.TestReplicationSyncUpToolWithMultipleWAL
hadoop.hbase.master.assignment.TestRegionSplit
hadoop.hbase.replication.TestReplicationDroppedTables
hadoop.hbase.replication.TestReplicationDisableInactivePeer
hadoop.hbase.client.TestFromClientSide
hadoop.hbase.replication.TestReplicationSyncUpToolWithBulkLoadedData
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 14e3f113aa0b 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
checkstylehttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/artifact/out/diff-checkstyle-hbase-server.txt
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/testReport/
Max. process+thread count5659 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathv
bharathvforce-pushed the HBASE-23647 branch 2 times, most recently from 6ec93fe to a9cf71dCompareJanuary 21, 2020 00:25

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the last pushed patchset fixes all the test issues (atleast for me locally). Lets see how it does in a jenkins run. If its green, the patch is ready for review.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 5sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 33sMaven dependency ordering for branch
+1 💚mvninstall5m 45sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 46sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 37sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars4m 58sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 17sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs5m 8sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs7m 3sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall5m 27sthe patch passed
+1 💚compile1m 46sthe patch passed
+1 💚javac1m 46sthe patch passed
+1 💚checkstyle0m 25shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 33sThe patch passed checkstyle in hbase-client
-1 ❌checkstyle1m 38shbase-server: The patch generated 1 new + 451 unchanged - 2 fixed = 452 total (was 453)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 1spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 22sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 17sthe patch passed
+1 💚findbugs7m 17sthe patch passed
_ Other Tests _
+1 💚unit3m 8shbase-common in the patch passed.
+1 💚unit1m 55shbase-client in the patch passed.
-1 ❌unit168m 33shbase-server in the patch failed.
+1 💚asflicense1m 12sThe patch does not generate ASF License warnings.
248m 20s
ReasonTests
Failed junit testshadoop.hbase.quotas.TestClusterScopeQuotaThrottle
hadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 4816f481e385 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
checkstylehttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/artifact/out/diff-checkstyle-hbase-server.txt
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/testReport/
Max. process+thread count5450 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 33sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 36sMaven dependency ordering for branch
+1 💚mvninstall5m 7sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 47sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 30sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars4m 36sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 22sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 40sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 31sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall4m 57sthe patch passed
+1 💚compile1m 44sthe patch passed
+1 💚javac1m 44sthe patch passed
+1 💚checkstyle0m 26shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 32sThe patch passed checkstyle in hbase-client
+1 💚checkstyle1m 31shbase-server: The patch generated 0 new + 451 unchanged - 2 fixed = 451 total (was 453)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars4m 38spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck15m 42sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 21sthe patch passed
+1 💚findbugs6m 46sthe patch passed
_ Other Tests _
+1 💚unit3m 20shbase-common in the patch passed.
+1 💚unit2m 4shbase-client in the patch passed.
-1 ❌unit160m 26shbase-server in the patch failed.
+1 💚asflicense1m 38sThe patch does not generate ASF License warnings.
235m 31s
ReasonTests
Failed junit testshadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux da50f0173692 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/testReport/
Max. process+thread count5424 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@apurtell

Copy link
Copy Markdown
Contributor

So the only test failure now is TestFromClientSide? Can this be excluded as not related or a flake?

@bharathv

Copy link
Copy Markdown
ContributorAuthor

Reposting from the jira comment:

@apurtell TestFromClientSide was known to be flaky (even before this patch). So I'm fairly certain it has nothing to do with the current jira.

One thing @ndimiduk and I noticed here is that switching to JUnit 4.13 (HBASE-23664) has exacerbated the problem. Based on some initial debugging it looks like it has something to do with leaking FileSystem/DFSClient objects in the HBase code and restarting the minicluster in the same JUnit test runner JVM (what TestFromClientSide does) causes a leak of hdfs lease renewer threads. Some how Junit 4.12 was masking the problem.

@apurtellapurtell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of suggestions.

Lots of nice test improvements in here too.

// Without the right registry, the above configs are useless. Also, we don't use setClass()
// here because the ConnectionRegistry* classes are not resolvable from this module.
// This will be broken if ZkConnectionRegistry class gets renamed or moved. Is there a better
// way?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could use findClass and if there's an exception fall through to alternate or recovery code. Anyway, agreed, a reference to a class constant is not called for here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fall through to alternate or recovery code

There is no alternate or recovery from that point, no? The same error is propagated while creating the registry instance, so I guess we don't need to do it again here I think.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code is going waste away. If user chooses zk registry, this code applies?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. It is ok to leave as-is since it is a no-op?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm finding this method used by SyncTable, TableMapReduceUtil, TableOutputFormat, VerifyReplication, ExportSnapshot ... Per earlier discussion, replication will continue to use the ZK registry... what about the general MapReduce/Spark/Flink use-cases?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. Good point.

TableMapReduceUtil: This happens only in initCredentialsForCluster() or if hbase.mapred.output.quorum is specified. Basically it only happens for a "peer" cluster. (same for TableOutputFormat, unless QUORUM_ADDRESS for a target is specified this doesn't happen). Overall, I think all MR jobs running on a single cluster will use master registry. I think that answers the MR/Spark/Flink usecases.

Now coming to MR jobs spanning multiple clusters (source and target) Ex: VerifyReplication / ExportSnapshot/SyncTable/TableOutputFormat etc

I think these need to be rewritten with new config params like hbase.[source|target].master.addrs for clients to pass the addresses so that they can use master registry.

What do you think? Should we rewrite them with new configs or maintain compatibility and keep using zkregistry?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, I think all MR jobs running on a single cluster will use master registry. I think that answers the MR/Spark/Flink usecases.

Sounds good.

I think these need to be rewritten with new config params like hbase.[source|target].master.addrs for clients to pass the addresses so that they can use master registry.

I think it's best to reduce the ZK-exposed surface area as much as possible. This seems a reasonable solution to me.

// - Decouples RS and master life cycles. For example, if all the masters are down, region
// servers can abort at the same time, because the internal connection is master dependent and
// fails.This is an operational nightmare. Using the ZK based registry means that the region
// servers are now on the look out for new masters, if they are spun up.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tense here is confusing.

"Using the ZK based registry means the region servers continue to be independent of master availability..." ?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarified.

// - We need to retain ZKConnectionRegistry for replication use anyway, so we just extend it for
// other internal connections too.
conf.set(HConstants.CLIENT_CONNECTION_REGISTRY_IMPL_CONF_KEY,
"org.apache.hadoop.hbase.client.ZKConnectionRegistry");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, but these class names can be constant strings at least.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

// ZK registry is so slow that by then the server manager is init'ed thus masking the problem.
// For now, I'm putting a sleep here to workaround the issue, I think the fix for it is a little
// delicate and needs to be done separately.
Thread.sleep(5000);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to use Waiter#waitFor to wait on some condition variable or predicate? Hard coded sleeps in tests tend to fall over on Apache Jenkins because of load issues ie the sleeps can never be long enough...

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is cleaner, done.

@saintstacksaintstack left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great.

One question probably answered over in core patch, is there any writeup on how things will run from here on out when we have Master Registry in place? If no Masters, clients will have no place to go. What is the failure like? Spewing can't connect? If Master comes up, all smooths out? Etc. Thanks.

// Without the right registry, the above configs are useless. Also, we don't use setClass()
// here because the ConnectionRegistry* classes are not resolvable from this module.
// This will be broken if ZkConnectionRegistry class gets renamed or moved. Is there a better
// way?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code is going waste away. If user chooses zk registry, this code applies?

List<String> masterHostPorts = new ArrayList<>();
getMasters().forEach(masterThread ->
masterHostPorts.add(masterThread.getMaster().getServerName().getAddress().toString()));
conf.set(HConstants.MASTER_ADDRS_KEY, String.join(",", masterHostPorts));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could be obnoxious here but won't. Better to do as you have done here and just move the code.... not change it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I rewrote this multiple times to get it working and in that process called it from multiple places, hence separated it out into a method. Doesn't make sense anymore like you pointed out. Moved it to the new place instead.

// - Decouples RS and master life cycles. RegionServers can continue be up independent of
// masters' availability.
// - Configuration management for region servers (cluster internal) is much simpler when adding
// new masters etc.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand this one.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if one is adding new masters to the cluster (or taking down an existing master), they will have to update the region servers config by doing a rolling restart (unless there is some dynamic way of updating it). This operational overhead is avoided since the regionservers figure it out from ZK. They just have to update it on the clients.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(clarified it in the comment, let me know if it is still unclear)

TEST_UTIL.createRootDir();
final LocalHBaseCluster cluster =
new LocalHBaseCluster(conf, NUM_MASTERS, NUM_RS, HMaster.class,
new LocalHBaseCluster(conf, NUM_MASTERS, 0, NUM_RS, HMaster.class,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We seem to do '0' as AlwaysMasters. Should we do override that defaults zero? Just to keep the AlwaysMasters out of view when not needed.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec3m 51sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 1sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 34sMaven dependency ordering for branch
+1 💚mvninstall5m 46sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 45sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 33sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars5m 3sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 19sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 56sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 50sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall5m 28sthe patch passed
+1 💚compile1m 46sthe patch passed
+1 💚javac1m 46sthe patch passed
+1 💚checkstyle0m 26shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 34sThe patch passed checkstyle in hbase-client
+1 💚checkstyle1m 35shbase-server: The patch generated 0 new + 451 unchanged - 2 fixed = 451 total (was 453)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 2spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 14sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 15sthe patch passed
+1 💚findbugs7m 37sthe patch passed
_ Other Tests _
+1 💚unit3m 7shbase-common in the patch passed.
+1 💚unit1m 54shbase-client in the patch passed.
-1 ❌unit176m 2shbase-server in the patch failed.
+1 💚asflicense1m 16sThe patch does not generate ASF License warnings.
258m 29s
ReasonTests
Failed junit testshadoop.hbase.TestZooKeeper
hadoop.hbase.replication.TestReplicationSmallTests
hadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 14c22c9438e5 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/testReport/
Max. process+thread count5220 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there any writeup on how things will run from here on out when we have Master Registry in place?

Plan to document as a part of HBASE-23331.

If no Masters, clients will have no place to go. What is the failure like? Spewing can't connect? If Master comes up, all smooths out? Etc. Thanks.

Ya, as long as the master ports (atleast one of the configured ones) didn't change, connection should be back up. Until then spewing of stack traces

// Without the right registry, the above configs are useless. Also, we don't use setClass()
// here because the ConnectionRegistry* classes are not resolvable from this module.
// This will be broken if ZkConnectionRegistry class gets renamed or moved. Is there a better
// way?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. It is ok to leave as-is since it is a no-op?

List<String> masterHostPorts = new ArrayList<>();
getMasters().forEach(masterThread ->
masterHostPorts.add(masterThread.getMaster().getServerName().getAddress().toString()));
conf.set(HConstants.MASTER_ADDRS_KEY, String.join(",", masterHostPorts));

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I rewrote this multiple times to get it working and in that process called it from multiple places, hence separated it out into a method. Doesn't make sense anymore like you pointed out. Moved it to the new place instead.

// - Decouples RS and master life cycles. RegionServers can continue be up independent of
// masters' availability.
// - Configuration management for region servers (cluster internal) is much simpler when adding
// new masters etc.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if one is adding new masters to the cluster (or taking down an existing master), they will have to update the region servers config by doing a rolling restart (unless there is some dynamic way of updating it). This operational overhead is avoided since the regionservers figure it out from ZK. They just have to update it on the clients.

TEST_UTIL.startMiniCluster(3);
REGISTRY = ConnectionRegistryFactory.getRegistry(TEST_UTIL.getConfiguration());
RegionReplicaTestHelper.waitUntilAllMetaReplicasHavingRegionLocation(
RegionReplicaTestHelper.waitUntilAllMetaReplicasAreReady(TEST_UTIL,

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, you are right. For some reason I thought there are some callers that pass some custom config but I was wrong.

TEST_UTIL.createRootDir();
final LocalHBaseCluster cluster =
new LocalHBaseCluster(conf, NUM_MASTERS, NUM_RS, HMaster.class,
new LocalHBaseCluster(conf, NUM_MASTERS, 0, NUM_RS, HMaster.class,

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 32sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 2sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 36sMaven dependency ordering for branch
+1 💚mvninstall5m 11sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 46sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 30sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars4m 37sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 22sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 30sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 22sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall4m 57sthe patch passed
+1 💚compile1m 45sthe patch passed
+1 💚javac1m 45sthe patch passed
+1 💚checkstyle0m 24shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 32sThe patch passed checkstyle in hbase-client
+1 💚checkstyle1m 30shbase-server: The patch generated 0 new + 450 unchanged - 3 fixed = 450 total (was 453)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars4m 41spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck15m 28sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 20sthe patch passed
+1 💚findbugs6m 48sthe patch passed
_ Other Tests _
+1 💚unit3m 21shbase-common in the patch passed.
+1 💚unit2m 4shbase-client in the patch passed.
-1 ❌unit160m 41shbase-server in the patch failed.
+1 💚asflicense1m 40sThe patch does not generate ASF License warnings.
235m 22s
ReasonTests
Failed junit testshadoop.hbase.io.hfile.bucket.TestBucketCache
hadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 52f07988c23c 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/testReport/
Max. process+thread count5730 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@saintstacksaintstack left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

....and I felt this is redundant (tests the same thing) so removed. You prefer to retain it?

We need more of this sort of judgement -- purging redundant tests.

They just have to update it on the clients.

Hmm. If a client has three Masters, and the operators remove one, what then? Operator has to update client configs to purge the removed Master?

I suppose we have same issue w/ zk ensemble list.

Agree, it is a test-only construct. Didn't leak into the server module. Anything else should be done?

No. Just hide it in tests as much as you can. Be explicit it is a test-only item (which I think you do...).

Agree. It is ok to leave as-is since it is a no-op?

Yes. Ok as is.

@bharathv

Copy link
Copy Markdown
ContributorAuthor

I suppose we have same issue w/ zk ensemble list.

Ya, thats the same problem, agreed.

@asfgit
asfgitforce-pushed the HBASE-18095/client-locate-meta-no-zookeeper branch from d9bb034 to 62da419CompareJanuary 24, 2020 17:45

@bharathvbharathv left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebased and squashed after a force push to the feature branch. Was a clean one.

@ndimidukndimiduk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a couple small change requests, but overall this is looking good.

conf.set(HConstants.ZOOKEEPER_QUORUM, zkClusterKey.getQuorumString());
conf.setInt(HConstants.ZOOKEEPER_CLIENT_PORT, zkClusterKey.getClientPort());
conf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, zkClusterKey.getZnodeParent());
// Without the right registry, the above configs are useless. Also, we don't use setClass()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a check-then-fail that can be done to assert that the method invocation has significance? Maybe log a warning saying zk configs are being applied to a master registry?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the logging. Don't think it should be warn though.

// Without the right registry, the above configs are useless. Also, we don't use setClass()
// here because the ConnectionRegistry* classes are not resolvable from this module.
// This will be broken if ZkConnectionRegistry class gets renamed or moved. Is there a better
// way?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm finding this method used by SyncTable, TableMapReduceUtil, TableOutputFormat, VerifyReplication, ExportSnapshot ... Per earlier discussion, replication will continue to use the ZK registry... what about the general MapReduce/Spark/Flink use-cases?

final int noRegionServers, final Class<? extends HMaster> masterClass,
final Class<? extends HRegionServer> regionServerClass)
throws IOException {
final int noAlwaysStandByMasters, final int noRegionServers,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh. The final constructor args are Configuration, int, int, int, Class, Class. It's time for a builder with named arguments.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ya, too long and confusing now.

// the master. The reason it was not happening earlier is because the connection creation with
// ZK registry is so slow that by then the server manager is init'ed thus masking the problem.
// For now, I'm putting a wait() here to workaround the issue, I think the fix for it is a
// little delicate and needs to be done separately.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the fix you have in mind? Reading through your comment, I thought of a test-only coprocessor that installs a latch that can be waited upon by the test.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about fixing the actual problem rather than the test. If a shutdown happens before starting the server manager, the latter takes note of that during init and shuts down automatically (or something along the lines). My fix is in the master bootstrap.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 8sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 34sMaven dependency ordering for branch
+1 💚mvninstall5m 52sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 47sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 17sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars5m 6sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 17sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 47sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 40sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall5m 35sthe patch passed
+1 💚compile1m 46sthe patch passed
+1 💚javac1m 46sthe patch passed
+1 💚checkstyle0m 22shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 30sThe patch passed checkstyle in hbase-client
+1 💚checkstyle1m 22shbase-server: The patch generated 0 new + 443 unchanged - 3 fixed = 443 total (was 446)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 11spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 31sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 17sthe patch passed
+1 💚findbugs6m 45sthe patch passed
_ Other Tests _
+1 💚unit3m 9shbase-common in the patch passed.
+1 💚unit1m 58shbase-client in the patch passed.
-1 ❌unit180m 53shbase-server in the patch failed.
+1 💚asflicense1m 44sThe patch does not generate ASF License warnings.
260m 33s
ReasonTests
Failed junit testshadoop.hbase.security.provider.TestCustomSaslAuthenticationProvider
hadoop.hbase.client.TestFromClientSide
hadoop.hbase.regionserver.TestRegionReplicasWithRestartScenarios
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 76dc38feb558 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / 62da419
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/testReport/
Max. process+thread count5289 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 20sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚test4tests0m 0sThe patch appears to include 48 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗mvndep0m 34sMaven dependency ordering for branch
+1 💚mvninstall5m 45sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚compile1m 47sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚checkstyle2m 15sHBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚shadedjars5m 7sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 18sHBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗spotbugs4m 45sUsed deprecated FindBugs config; considering switching to SpotBugs.
+1 💚findbugs6m 41sHBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall5m 38sthe patch passed
+1 💚compile1m 47sthe patch passed
+1 💚javac1m 47sthe patch passed
+1 💚checkstyle0m 22shbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚checkstyle0m 31sThe patch passed checkstyle in hbase-client
+1 💚checkstyle1m 22shbase-server: The patch generated 0 new + 443 unchanged - 3 fixed = 443 total (was 446)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚shadedjars5m 10spatch has no errors when building our shaded downstream artifacts.
+1 💚hadoopcheck17m 34sPatch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚javadoc1m 18sthe patch passed
+1 💚findbugs7m 9sthe patch passed
_ Other Tests _
+1 💚unit3m 10shbase-common in the patch passed.
+1 💚unit1m 59shbase-client in the patch passed.
-1 ❌unit166m 30shbase-server in the patch failed.
+1 💚asflicense1m 21sThe patch does not generate ASF License warnings.
246m 39s
ReasonTests
Failed junit testshadoop.hbase.client.TestFromClientSideWithCoprocessor
hadoop.hbase.security.provider.TestCustomSaslAuthenticationProvider
hadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/artifact/out/Dockerfile
GITHUB PR#1039
JIRA IssueHBASE-23647
Optional Testsdupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 13716f3ff67c 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revisionHBASE-18095/client-locate-meta-no-zookeeper / 39ff6f8
Default Java1.8.0_181
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/testReport/
Max. process+thread count5470 (vs. ulimit of 10000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/console
versionsgit=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered byApache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@apurtell
apurtell merged commit 7170e4e into apache:HBASE-18095/client-locate-meta-no-zookeeperJan 27, 2020
asfgit pushed a commit that referenced this pull request Jan 29, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Jan 29, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Jan 30, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Feb 3, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Feb 4, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Feb 5, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
asfgit pushed a commit that referenced this pull request Feb 5, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit that referenced this pull request Feb 9, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit that referenced this pull request Feb 11, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit that referenced this pull request Feb 13, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 14, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 17, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit that referenced this pull request Feb 18, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 20, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit that referenced this pull request Feb 20, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 23, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 24, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 25, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 26, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 229b8aa)
bharathv added a commit that referenced this pull request Feb 27, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 229b8aa)
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
Signed-off-by: Stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@bharathv@Apache-HBase@apurtell@ndimiduk@saintstack