Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Conversation

bharathv
Copy link
Contributor

No description provided.

Copy link
Contributor Author

@bharathv bharathv left a comment

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 45s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 54s Maven dependency ordering for branch
+1 💚 mvninstall 7m 34s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 42s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 24s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 5m 43s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 6s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 5m 37s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 58s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 16s Maven dependency ordering for patch
+1 💚 mvninstall 7m 0s the patch passed
+1 💚 compile 1m 48s the patch passed
+1 💚 javac 1m 48s the patch passed
+1 💚 checkstyle 2m 25s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 6m 2s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 23m 14s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 11s the patch passed
+1 💚 findbugs 7m 37s the patch passed
_ Other Tests _
+1 💚 unit 1m 57s hbase-client in the patch passed.
-1 ❌ unit 232m 7s hbase-server in the patch failed.
+1 💚 asflicense 1m 5s The patch does not generate ASF License warnings.
323m 27s
Reason Tests
Failed junit tests hadoop.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
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux c7f1ede18924 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/testReport/
Max. process+thread count 5027 (vs. ulimit of 10000)
modules C: hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/1/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathv
Copy link
Contributor Author

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.

Copy link
Contributor Author

@bharathv bharathv left a comment

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 5 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for branch
+1 💚 mvninstall 5m 48s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 46s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 30s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 5m 5s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 18s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 5m 3s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 57s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 5m 40s the patch passed
+1 💚 compile 1m 45s the patch passed
+1 💚 javac 1m 45s the patch passed
+1 💚 checkstyle 0m 26s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 34s The patch passed checkstyle in hbase-client
-1 ❌ checkstyle 1m 28s hbase-server: The patch generated 2 new + 32 unchanged - 1 fixed = 34 total (was 33)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 2s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 20s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 15s the patch passed
+1 💚 findbugs 7m 12s the patch passed
_ Other Tests _
+1 💚 unit 3m 9s hbase-common in the patch passed.
+1 💚 unit 1m 55s hbase-client in the patch passed.
-1 ❌ unit 220m 38s hbase-server in the patch failed.
+1 💚 asflicense 1m 45s The patch does not generate ASF License warnings.
301m 15s
Reason Tests
Failed junit tests hadoop.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
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux badb4f70380b 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/artifact/out/diff-checkstyle-hbase-server.txt
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/testReport/
Max. process+thread count 4812 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/2/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor Author

@bharathv bharathv left a comment

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 19s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 40 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 39s Maven dependency ordering for branch
+1 💚 mvninstall 5m 42s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 44s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 34s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 4m 57s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 19s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 56s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 48s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 5m 32s the patch passed
+1 💚 compile 1m 44s the patch passed
+1 💚 javac 1m 44s the patch passed
+1 💚 checkstyle 0m 25s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 35s The patch passed checkstyle in hbase-client
-1 ❌ checkstyle 1m 42s hbase-server: The patch generated 9 new + 450 unchanged - 2 fixed = 459 total (was 452)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 3s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 13s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 16s the patch passed
+1 💚 findbugs 7m 16s the patch passed
_ Other Tests _
+1 💚 unit 3m 20s hbase-common in the patch passed.
+1 💚 unit 1m 59s hbase-client in the patch passed.
-1 ❌ unit 200m 42s hbase-server in the patch failed.
+1 💚 asflicense 1m 32s The patch does not generate ASF License warnings.
281m 4s
Reason Tests
Failed junit tests hadoop.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
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 14e3f113aa0b 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/artifact/out/diff-checkstyle-hbase-server.txt
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/testReport/
Max. process+thread count 5659 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/3/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@bharathv bharathv force-pushed the HBASE-23647 branch 2 times, most recently from 6ec93fe to a9cf71d Compare January 21, 2020 00:25
Copy link
Contributor Author

@bharathv bharathv left a comment

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 33s Maven dependency ordering for branch
+1 💚 mvninstall 5m 45s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 46s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 37s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 4m 58s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 17s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 5m 8s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 7m 3s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 5m 27s the patch passed
+1 💚 compile 1m 46s the patch passed
+1 💚 javac 1m 46s the patch passed
+1 💚 checkstyle 0m 25s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 33s The patch passed checkstyle in hbase-client
-1 ❌ checkstyle 1m 38s hbase-server: The patch generated 1 new + 451 unchanged - 2 fixed = 452 total (was 453)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 1s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 22s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 17s the patch passed
+1 💚 findbugs 7m 17s the patch passed
_ Other Tests _
+1 💚 unit 3m 8s hbase-common in the patch passed.
+1 💚 unit 1m 55s hbase-client in the patch passed.
-1 ❌ unit 168m 33s hbase-server in the patch failed.
+1 💚 asflicense 1m 12s The patch does not generate ASF License warnings.
248m 20s
Reason Tests
Failed junit tests hadoop.hbase.quotas.TestClusterScopeQuotaThrottle
hadoop.hbase.client.TestFromClientSide
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 4816f481e385 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
checkstyle https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/artifact/out/diff-checkstyle-hbase-server.txt
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/testReport/
Max. process+thread count 5450 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/4/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 33s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 36s Maven dependency ordering for branch
+1 💚 mvninstall 5m 7s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 47s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 30s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 4m 36s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 22s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 40s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 31s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 4m 57s the patch passed
+1 💚 compile 1m 44s the patch passed
+1 💚 javac 1m 44s the patch passed
+1 💚 checkstyle 0m 26s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 32s The patch passed checkstyle in hbase-client
+1 💚 checkstyle 1m 31s hbase-server: The patch generated 0 new + 451 unchanged - 2 fixed = 451 total (was 453)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 4m 38s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 15m 42s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 21s the patch passed
+1 💚 findbugs 6m 46s the patch passed
_ Other Tests _
+1 💚 unit 3m 20s hbase-common in the patch passed.
+1 💚 unit 2m 4s hbase-client in the patch passed.
-1 ❌ unit 160m 26s hbase-server in the patch failed.
+1 💚 asflicense 1m 38s The patch does not generate ASF License warnings.
235m 31s
Reason Tests
Failed junit tests hadoop.hbase.client.TestFromClientSide
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux da50f0173692 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/testReport/
Max. process+thread count 5424 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/5/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@apurtell
Copy link
Contributor

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

@bharathv
Copy link
Contributor Author

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.

Copy link
Contributor

@apurtell apurtell left a comment

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
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
Contributor Author

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
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
Contributor Author

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
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
Contributor Author

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
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
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
Contributor Author

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
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
Contributor Author

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
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
Contributor Author

Choose a reason for hiding this comment

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

That is cleaner, done.

Copy link
Contributor

@saintstack saintstack left a comment

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
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
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
Contributor Author

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
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
Contributor Author

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
Contributor Author

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)

@@ -96,7 +96,7 @@ public void testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode
TEST_UTIL.startMiniZKCluster();
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
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
Contributor Author

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 3m 51s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 1s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 5m 46s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 45s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 33s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 5m 3s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 19s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 56s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 50s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 5m 28s the patch passed
+1 💚 compile 1m 46s the patch passed
+1 💚 javac 1m 46s the patch passed
+1 💚 checkstyle 0m 26s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 34s The patch passed checkstyle in hbase-client
+1 💚 checkstyle 1m 35s hbase-server: The patch generated 0 new + 451 unchanged - 2 fixed = 451 total (was 453)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 2s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 14s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 15s the patch passed
+1 💚 findbugs 7m 37s the patch passed
_ Other Tests _
+1 💚 unit 3m 7s hbase-common in the patch passed.
+1 💚 unit 1m 54s hbase-client in the patch passed.
-1 ❌ unit 176m 2s hbase-server in the patch failed.
+1 💚 asflicense 1m 16s The patch does not generate ASF License warnings.
258m 29s
Reason Tests
Failed junit tests hadoop.hbase.TestZooKeeper
hadoop.hbase.replication.TestReplicationSmallTests
hadoop.hbase.client.TestFromClientSide
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 14c22c9438e5 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/testReport/
Max. process+thread count 5220 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/6/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor Author

@bharathv bharathv left a comment

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
Contributor Author

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
Contributor Author

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
Contributor Author

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.

@@ -60,7 +60,7 @@ public static void setUp() throws Exception {
TEST_UTIL.getConfiguration().setInt(HConstants.META_REPLICAS_NUM, 3);
TEST_UTIL.startMiniCluster(3);
REGISTRY = ConnectionRegistryFactory.getRegistry(TEST_UTIL.getConfiguration());
RegionReplicaTestHelper.waitUntilAllMetaReplicasHavingRegionLocation(
RegionReplicaTestHelper.waitUntilAllMetaReplicasAreReady(TEST_UTIL,
Copy link
Contributor Author

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.

@@ -96,7 +96,7 @@ public void testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode
TEST_UTIL.startMiniZKCluster();
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
Contributor Author

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 36s Maven dependency ordering for branch
+1 💚 mvninstall 5m 11s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 46s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 30s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 4m 37s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 22s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 30s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 22s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 4m 57s the patch passed
+1 💚 compile 1m 45s the patch passed
+1 💚 javac 1m 45s the patch passed
+1 💚 checkstyle 0m 24s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 32s The patch passed checkstyle in hbase-client
+1 💚 checkstyle 1m 30s hbase-server: The patch generated 0 new + 450 unchanged - 3 fixed = 450 total (was 453)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 4m 41s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 15m 28s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 20s the patch passed
+1 💚 findbugs 6m 48s the patch passed
_ Other Tests _
+1 💚 unit 3m 21s hbase-common in the patch passed.
+1 💚 unit 2m 4s hbase-client in the patch passed.
-1 ❌ unit 160m 41s hbase-server in the patch failed.
+1 💚 asflicense 1m 40s The patch does not generate ASF License warnings.
235m 22s
Reason Tests
Failed junit tests hadoop.hbase.io.hfile.bucket.TestBucketCache
hadoop.hbase.client.TestFromClientSide
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 52f07988c23c 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / d9bb034
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/testReport/
Max. process+thread count 5730 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/7/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@saintstack saintstack left a comment

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
Contributor Author

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

Ya, thats the same problem, agreed.

@asfgit asfgit force-pushed the HBASE-18095/client-locate-meta-no-zookeeper branch from d9bb034 to 62da419 Compare January 24, 2020 17:45
Copy link
Contributor Author

@bharathv bharathv left a comment

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.

Copy link
Member

@ndimiduk ndimiduk left a comment

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.

ZKConfig.ZKClusterKey zkClusterKey = ZKConfig.transformClusterKey(key);
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
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
Contributor Author

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
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
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
Contributor Author

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
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
Contributor Author

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

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 8s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 47 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 5m 52s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 47s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 17s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 5m 6s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 17s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 47s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 40s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 5m 35s the patch passed
+1 💚 compile 1m 46s the patch passed
+1 💚 javac 1m 46s the patch passed
+1 💚 checkstyle 0m 22s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 30s The patch passed checkstyle in hbase-client
+1 💚 checkstyle 1m 22s hbase-server: The patch generated 0 new + 443 unchanged - 3 fixed = 443 total (was 446)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 11s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 31s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 17s the patch passed
+1 💚 findbugs 6m 45s the patch passed
_ Other Tests _
+1 💚 unit 3m 9s hbase-common in the patch passed.
+1 💚 unit 1m 58s hbase-client in the patch passed.
-1 ❌ unit 180m 53s hbase-server in the patch failed.
+1 💚 asflicense 1m 44s The patch does not generate ASF License warnings.
260m 33s
Reason Tests
Failed junit tests hadoop.hbase.security.provider.TestCustomSaslAuthenticationProvider
hadoop.hbase.client.TestFromClientSide
hadoop.hbase.regionserver.TestRegionReplicasWithRestartScenarios
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 76dc38feb558 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / 62da419
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/testReport/
Max. process+thread count 5289 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/8/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 20s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 48 new or modified test files.
_ HBASE-18095/client-locate-meta-no-zookeeper Compile Tests _
+0 🆗 mvndep 0m 34s Maven dependency ordering for branch
+1 💚 mvninstall 5m 45s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 compile 1m 47s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 checkstyle 2m 15s HBASE-18095/client-locate-meta-no-zookeeper passed
+1 💚 shadedjars 5m 7s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 1m 18s HBASE-18095/client-locate-meta-no-zookeeper passed
+0 🆗 spotbugs 4m 45s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 6m 41s HBASE-18095/client-locate-meta-no-zookeeper passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 5m 38s the patch passed
+1 💚 compile 1m 47s the patch passed
+1 💚 javac 1m 47s the patch passed
+1 💚 checkstyle 0m 22s hbase-common: The patch generated 0 new + 4 unchanged - 1 fixed = 4 total (was 5)
+1 💚 checkstyle 0m 31s The patch passed checkstyle in hbase-client
+1 💚 checkstyle 1m 22s hbase-server: The patch generated 0 new + 443 unchanged - 3 fixed = 443 total (was 446)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 5m 10s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 17m 34s Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1 💚 javadoc 1m 18s the patch passed
+1 💚 findbugs 7m 9s the patch passed
_ Other Tests _
+1 💚 unit 3m 10s hbase-common in the patch passed.
+1 💚 unit 1m 59s hbase-client in the patch passed.
-1 ❌ unit 166m 30s hbase-server in the patch failed.
+1 💚 asflicense 1m 21s The patch does not generate ASF License warnings.
246m 39s
Reason Tests
Failed junit tests hadoop.hbase.client.TestFromClientSideWithCoprocessor
hadoop.hbase.security.provider.TestCustomSaslAuthenticationProvider
hadoop.hbase.client.TestFromClientSide
Subsystem Report/Notes
Docker Client=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 Issue HBASE-23647
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 13716f3ff67c 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-1039/out/precommit/personality/provided.sh
git revision HBASE-18095/client-locate-meta-no-zookeeper / 39ff6f8
Default Java 1.8.0_181
unit https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/artifact/out/patch-unit-hbase-server.txt
Test Results https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/testReport/
Max. process+thread count 5470 (vs. ulimit of 10000)
modules C: hbase-common hbase-client hbase-server U: .
Console output https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1039/9/console
versions git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11
Powered by Apache 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-zookeeper Jan 27, 2020
asfgit pushed a commit that referenced this pull request Jan 29, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Jan 29, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Jan 30, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Feb 3, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Feb 4, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Feb 5, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
asfgit pushed a commit that referenced this pull request Feb 5, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit that referenced this pull request Feb 9, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit that referenced this pull request Feb 11, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit that referenced this pull request Feb 13, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 14, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 17, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit that referenced this pull request Feb 18, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 20, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit that referenced this pull request Feb 20, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 23, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 24, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 25, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 229b8aa)
bharathv added a commit to bharathv/hbase that referenced this pull request Feb 26, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 229b8aa)
bharathv added a commit that referenced this pull request Feb 27, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
(cherry picked from commit 229b8aa)
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
thangTang pushed a commit to thangTang/hbase that referenced this pull request Apr 16, 2020
Signed-off-by: Stack <[email protected]>
Signed-off-by: Nick Dimiduk <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
Sign up for free to 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