Skip to content

HBASE-28428 : Zookeeper ConnectionRegistry APIs should have timeout - #5837

Merged
virajjasani merged 15 commits into
apache:masterfrom
Divneet18:HBASE-28428
Jul 18, 2024
Merged

HBASE-28428 : Zookeeper ConnectionRegistry APIs should have timeout#5837
virajjasani merged 15 commits into
apache:masterfrom
Divneet18:HBASE-28428

Conversation

@Divneet18

@Divneet18Divneet18 commented Apr 18, 2024

Copy link
Copy Markdown
Contributor

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 41sDocker 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.
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall2m 57smaster passed
+1 💚compile3m 44smaster passed
+1 💚checkstyle1m 10smaster passed
+1 💚spotless0m 45sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 47smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall2m 49sthe patch passed
+1 💚compile3m 41sthe patch passed
+1 💚javac3m 41sthe patch passed
-0 ⚠️checkstyle0m 17shbase-client: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0)
-0 ⚠️checkstyle0m 36shbase-server: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck4m 50sPatch does not cause any errors with Hadoop 3.3.6.
-1 ❌spotless0m 20spatch has 59 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs3m 11sthe patch passed
_ Other Tests _
+1 💚asflicense0m 32sThe patch does not generate ASF License warnings.
35m 23s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 28af1b003969 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / a34b4bc
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-client.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count81 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 29sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall3m 13smaster passed
+1 💚compile1m 21smaster passed
+1 💚shadedjars5m 53sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall2m 59sthe patch passed
+1 💚compile1m 23sthe patch passed
+1 💚javac1m 23sthe patch passed
+1 💚shadedjars5m 54spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54sthe patch passed
_ Other Tests _
+1 💚unit2m 45shbase-common in the patch passed.
-1 ❌unit1m 7shbase-client in the patch failed.
-1 ❌unit231m 15shbase-server in the patch failed.
263m 37s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 3402ddd9c745 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / a34b4bc
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-client.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/testReport/
Max. process+thread count5330 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 41sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall2m 58smaster passed
+1 💚compile1m 37smaster passed
+1 💚shadedjars5m 12sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 4smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 50sthe patch passed
+1 💚compile1m 39sthe patch passed
+1 💚javac1m 39sthe patch passed
+1 💚shadedjars5m 13spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 3sthe patch passed
_ Other Tests _
+1 💚unit2m 37shbase-common in the patch passed.
-1 ❌unit1m 10shbase-client in the patch failed.
-1 ❌unit234m 40shbase-server in the patch failed.
266m 36s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux ea84a235b95e 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / a34b4bc
Default JavaEclipse Adoptium-17.0.10+7
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-client.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/testReport/
Max. process+thread count4787 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 27sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 43smaster passed
+1 💚compile1m 18smaster passed
+1 💚shadedjars6m 48sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 56smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall3m 5sthe patch passed
+1 💚compile1m 24sthe patch passed
+1 💚javac1m 24sthe patch passed
+1 💚shadedjars6m 17spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 1sthe patch passed
_ Other Tests _
+1 💚unit2m 3shbase-common in the patch passed.
-1 ❌unit1m 7shbase-client in the patch failed.
-1 ❌unit258m 26shbase-server in the patch failed.
291m 2s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 28ee601525b9 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / a34b4bc
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-client.txt
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/testReport/
Max. process+thread count5459 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9Apache9 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.

This is not the correct way, as we place lots of boiler plate code everywhere...

Please add the timeout control in connection registry implementation. DIfferent connection registry implementations can have their own way to implement the timeout.

}

});
}, conf.getInt(HConstants.CONNECTION_REGISTRY_API_TIMEOUT,

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 do not think this is the correct place to put these timeout configurations.

We should place them into the connection registry implementation.

@virajjasani

virajjasani commented Apr 23, 2024

Copy link
Copy Markdown
Contributor

@Apache9 how do we ensure the timeout is considered by CompletableFuture? ConnectionRegistry APIs return CompletableFuture so if we implement timeout on CompletableFuture as part of connection registry implementation, then in reality all APIs would become synchronous and return actual values rather than wrapped with CompletableFuture right?
Did I get your suggestion right?

@Apache9

Copy link
Copy Markdown
Contributor

You can see how we implement timeout in AsyncRpcConnectionImpl...

There is a timer, when we reach timeout, the timer task will call completeExceptionally method of the CompletableFuture, so the upper layer will get a timeout exception.

So for rpc based connection registry, we could set the operation timeout while doing the request, and for zk based, we should introduce a timer to do this work.

Thanks.

@Divneet18

Copy link
Copy Markdown
ContributorAuthor

@Apache9 where can I find the AsynRpcConnectionImpl code? We tried finding it but are having no luck in the master code base. Thank you

@virajjasani

Copy link
Copy Markdown
Contributor

@Divneet18 here is the sample for TimerTask and how we can introduce timeout:

 TimerTask pollingTask = new TimerTask() {
int tries = 0;
long startTime = EnvironmentEdgeManager.currentTime();
long endTime = startTime + expectedTimeout;
long maxPauseTime = expectedTimeout / maxAttempts;
@Override
public void run(Timeout timeout) throws Exception {
if (EnvironmentEdgeManager.currentTime() < endTime) {
addListener(isSnapshotFinished(snapshot), (done, err2) -> {
if (err2 != null) {
future.completeExceptionally(err2);
} else if (done) {
future.complete(null);
} else {
// retry again after pauseTime.
long pauseTime =
ConnectionUtils.getPauseTime(TimeUnit.NANOSECONDS.toMillis(pauseNs), ++tries);
pauseTime = Math.min(pauseTime, maxPauseTime);
AsyncConnectionImpl.RETRY_TIMER.newTimeout(this, pauseTime, TimeUnit.MILLISECONDS);
}
});
} else {
future
.completeExceptionally(new SnapshotCreationException("Snapshot '" + snapshot.getName()
+ "' wasn't completed in expectedTime:" + expectedTimeout + " ms", snapshot));
}
}
};

@virajjasani

Copy link
Copy Markdown
Contributor

The other example is for execProcedure:

 @Override
public CompletableFuture<Void> execProcedure(String signature, String instance,
Map<String, String> props) {
CompletableFuture<Void> future = new CompletableFuture<>();
ProcedureDescription procDesc =
ProtobufUtil.buildProcedureDescription(signature, instance, props);
addListener(this.<Long> newMasterCaller()
.action((controller, stub) -> this.<ExecProcedureRequest, ExecProcedureResponse, Long> call(
controller, stub, ExecProcedureRequest.newBuilder().setProcedure(procDesc).build(),
(s, c, req, done) -> s.execProcedure(c, req, done), resp -> resp.getExpectedTimeout()))
.call(), (expectedTimeout, err) -> {
if (err != null) {
future.completeExceptionally(err);
return;
}
TimerTask pollingTask = new TimerTask() {
int tries = 0;
long startTime = EnvironmentEdgeManager.currentTime();
long endTime = startTime + expectedTimeout;
long maxPauseTime = expectedTimeout / maxAttempts;
@Override
public void run(Timeout timeout) throws Exception {
if (EnvironmentEdgeManager.currentTime() < endTime) {
addListener(isProcedureFinished(signature, instance, props), (done, err2) -> {
if (err2 != null) {
future.completeExceptionally(err2);
return;
}
if (done) {
future.complete(null);
} else {
// retry again after pauseTime.
long pauseTime =
ConnectionUtils.getPauseTime(TimeUnit.NANOSECONDS.toMillis(pauseNs), ++tries);
pauseTime = Math.min(pauseTime, maxPauseTime);
AsyncConnectionImpl.RETRY_TIMER.newTimeout(this, pauseTime,
TimeUnit.MICROSECONDS);
}
});
} else {
future.completeExceptionally(new IOException("Procedure '" + signature + " : "
+ instance + "' wasn't completed in expectedTime:" + expectedTimeout + " ms"));
}
}
};
// Queue the polling task into RETRY_TIMER to poll procedure state asynchronously.
AsyncConnectionImpl.RETRY_TIMER.newTimeout(pollingTask, 1, TimeUnit.MILLISECONDS);
});
return future;
}

@virajjasani

Copy link
Copy Markdown
Contributor

Here, TimerTask is used within addListener(), hence we can make somewhat similar change in ZKConnectionRegistry.

@Apache9

Copy link
Copy Markdown
Contributor

Have you guys find the way to use timer to implement the timeout?
You can see the code in AsyncRpcRetryingCaller.

And for ZKConnectionRegistry, you can pass the TIMER in AsyncConnectionImpl to the ReadOnlyZKClient, and use it in ReadOnlyZKClient. More specific, you can schedule a timer task when calling the exec method for ZKTask, and once we reach the timeout time, we call completeExceptionally on the future in ZKTask.

Thanks.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 37sDocker 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.
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 54smaster passed
+1 💚compile3m 56smaster passed
+1 💚checkstyle1m 8smaster passed
+1 💚spotless0m 44sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 48smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 45sthe patch passed
+1 💚compile3m 56sthe patch passed
+1 💚javac3m 56sthe patch passed
-0 ⚠️checkstyle0m 17shbase-client: The patch generated 19 new + 0 unchanged - 0 fixed = 19 total (was 0)
-0 ⚠️checkstyle0m 36shbase-server: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck4m 53sPatch does not cause any errors with Hadoop 3.3.6.
-1 ❌spotless0m 19spatch has 63 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs3m 10sthe patch passed
_ Other Tests _
+1 💚asflicense0m 31sThe patch does not generate ASF License warnings.
35m 49s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 8e8d6673e6da 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ca34010
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-client.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count81 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 10sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall2m 59smaster passed
+1 💚compile1m 37smaster passed
+1 💚shadedjars5m 14sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 6smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall2m 49sthe patch passed
+1 💚compile1m 37sthe patch passed
+1 💚javac1m 37sthe patch passed
+1 💚shadedjars5m 13spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 3sthe patch passed
_ Other Tests _
+1 💚unit2m 37shbase-common in the patch passed.
+1 💚unit1m 34shbase-client in the patch passed.
+1 💚unit227m 6shbase-server in the patch passed.
260m 8s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 04abc83386a0 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ca34010
Default JavaEclipse Adoptium-17.0.10+7
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/testReport/
Max. process+thread count4658 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 1sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for branch
+1 💚mvninstall2m 58smaster passed
+1 💚compile1m 29smaster passed
+1 💚shadedjars5m 13sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 1smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 54sthe patch passed
+1 💚compile2m 3sthe patch passed
+1 💚javac2m 3sthe patch passed
+1 💚shadedjars6m 45spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 10sthe patch passed
_ Other Tests _
+1 💚unit2m 59shbase-common in the patch passed.
+1 💚unit2m 2shbase-client in the patch passed.
+1 💚unit261m 22shbase-server in the patch passed.
296m 52s
SubsystemReport/Notes
DockerClientAPI=1.45 ServerAPI=1.45 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux da581ce3c8ac 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ca34010
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/testReport/
Max. process+thread count4679 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 37sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for branch
+1 💚mvninstall3m 22smaster passed
+1 💚compile1m 32smaster passed
+1 💚shadedjars6m 38sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 5smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 4sthe patch passed
+1 💚compile1m 28sthe patch passed
+1 💚javac1m 28sthe patch passed
+1 💚shadedjars6m 32spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 2sthe patch passed
_ Other Tests _
+1 💚unit2m 24shbase-common in the patch passed.
+1 💚unit1m 44shbase-client in the patch passed.
-1 ❌unit267m 44shbase-server in the patch failed.
302m 30s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 8af6da17437a 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ca34010
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/testReport/
Max. process+thread count4453 (vs. ulimit of 30000)
modulesC: hbase-common hbase-client hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


private static final long expectedTimeout = 120000;
private static final int maxAttempts = 5;
private static final long pauseNs = 100000;

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.

These should be configs, not constants.

@Apache9Apache9 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.

The implementation is incorrect...

The problem here is the async zk operation does not have timeout, it may depends on the session timeout configuration but not very stable, so we need to use an external timer task to force finish the completable future.

Here you just submit the async zk operation in the timer task, and then in the callback, you check reschedule the timer task and then you have a chance to check timeout, but what if the zk operation does not return within the timeout?...


import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.hadoop.conf.Configuration;

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.

Not used?

@Override
public RegionLocations getRegionLocations(TableName tableName, int replicaId,
boolean reload) throws Exception {
final Configuration conf = HBaseConfiguration.create();

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.

Please remove this useless code?


private static AsyncClusterConnection createAsyncClusterConnection(Configuration conf,
ConnectionRegistry registry, SocketAddress localAddress, User user) throws IOException {
ConnectionRegistry registry, SocketAddress localAddress, User user) throws IOException {

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.

Not used?

@virajjasani

Copy link
Copy Markdown
Contributor

Here you just submit the async zk operation in the timer task, and then in the callback, you check reschedule the timer task and then you have a chance to check timeout, but what if the zk operation does not return within the timeout?...

@Apache9 this is exactly why i was initially proposing to use CompletableFuture#get with timeout in all callers so that regardless of the ConnectionRegistry implementation, we can still have our timeout at Future object level.

@Apache9

Copy link
Copy Markdown
Contributor

Here you just submit the async zk operation in the timer task, and then in the callback, you check reschedule the timer task and then you have a chance to check timeout, but what if the zk operation does not return within the timeout?...

@Apache9 this is exactly why i was initially proposing to use CompletableFuture#get with timeout in all callers so that regardless of the ConnectionRegistry implementation, we can still have our timeout at Future object level.

I've already mentioned above using CompletableFuture.get is incorrect, the jira title is ConnectionRegistry APIs should have timeout, not the caller should have timeout, and how do you plan to deal with async operations? You should never do future.get in an async operation.

@virajjasani

Copy link
Copy Markdown
Contributor

Both approaches have their own drawbacks.
I still wonder what we can do here for ConnectionRegistry timeouts, given that Zookeeper response might never come back for timer to be applicable.

@Apache9

Copy link
Copy Markdown
Contributor

Both approaches have their own drawbacks. I still wonder what we can do here for ConnectionRegistry timeouts, given that Zookeeper response might never come back for timer to be applicable.

The timer is used to complete the CompletableFuture when the zookeeper does not respond in time...

@virajjasani

Copy link
Copy Markdown
Contributor

Both approaches have their own drawbacks. I still wonder what we can do here for ConnectionRegistry timeouts, given that Zookeeper response might never come back for timer to be applicable.

The timer is used to complete the CompletableFuture when the zookeeper does not respond in time...

Oh wait, we need TimeTask for zk.get(path) and zk.list(znodePaths.baseZNode) only right? We should not have TimerTask for outer CompletableFuture.

@Apache9

Copy link
Copy Markdown
Contributor

Both approaches have their own drawbacks. I still wonder what we can do here for ConnectionRegistry timeouts, given that Zookeeper response might never come back for timer to be applicable.

The timer is used to complete the CompletableFuture when the zookeeper does not respond in time...

Oh wait, we need TimeTask for zk.get(path) and zk.list(znodePaths.baseZNode) only right? We should not have TimerTask for outer CompletableFuture.

In ZKConnetionRegistry, you have a CompletableFuture object returned to upper layer, and you will issue a zk async operation, in the callback, you will complete the CompletableFuture object so the upper layer will know.

Now the problem is you can not control the timeout of zk async operations, so when issue a zk async operation, you need to set up a timer task at the same time, and once the timer task is executed, you try to complete the CompletableFuture with a TimeoutException if it has not been completed yet, so the upper layer will know the operation failed.

@virajjasani

virajjasani commented Jun 3, 2024

Copy link
Copy Markdown
Contributor

@Apache9, I looked into this with Divneet today. How about this method in ReadOnlyZKClient?

 public CompletableFuture<byte[]> getWithTimeout(String path, long endTime) {
CompletableFuture<byte[]> future = get(path);
TimerTask timerTask = new TimerTask() {
@Override
public void run(Timeout timeout) throws Exception {
if (EnvironmentEdgeManager.currentTime() > endTime) {
if (!future.isCancelled() && !future.isDone() && !future.isCompletedExceptionally()) {
future.completeExceptionally(
new DoNotRetryIOException("Zookeeper get could not be completed by " + endTime));
}
} else {
if (!future.isCancelled() && !future.isDone() && !future.isCompletedExceptionally()) {
AsyncConnectionImpl.RETRY_TIMER.newTimeout(this, 10, TimeUnit.MILLISECONDS);
}
}
}
};
AsyncConnectionImpl.RETRY_TIMER.newTimeout(timerTask, 1, TimeUnit.MILLISECONDS);
return future;
}

At ZKConnectionRegistry, we can call zk#getWithTimeout rather than zk#get.

@virajjasani

Copy link
Copy Markdown
Contributor

@Divneet18 could you please give this a shot?

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 44sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall2m 47smaster passed
+1 💚compile0m 16smaster passed
+1 💚shadedjars5m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 15smaster passed
-0 ⚠️patch6m 4sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+1 💚mvninstall2m 25sthe patch passed
+1 💚compile0m 17sthe patch passed
+1 💚javac0m 17sthe patch passed
+1 💚shadedjars5m 42spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 13sthe patch passed
_ Other Tests _
+1 💚unit1m 25shbase-client in the patch passed.
20m 53s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 2f3b1b514ae6 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c0fb41f
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/3/testReport/
Max. process+thread count301 (vs. ulimit of 30000)
modulesC: hbase-client U: hbase-client
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/3/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Divneet18

Copy link
Copy Markdown
ContributorAuthor

@Apache9 The methods without timeout are only being called in methods with timeout and one test file. So is it okay to not remove them?

@Apache9

Copy link
Copy Markdown
Contributor

Please fix the spotless error? Just run 'mvn spotless:apply', I think the PR is almost ready, let's get a clean pre commit build result first.

Thanks @Divneet18 for your patience.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec2m 27sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 34sMaven dependency ordering for branch
+1 💚mvninstall3m 21smaster passed
+1 💚compile0m 34smaster passed
+1 💚javadoc0m 28smaster passed
+1 💚shadedjars5m 50sbranch has no errors when building our shaded downstream artifacts.
-0 ⚠️patch6m 5sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 2sthe patch passed
+1 💚compile0m 35sthe patch passed
+1 💚javac0m 35sthe patch passed
+1 💚javadoc0m 28sthe patch passed
+1 💚shadedjars5m 45spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit1m 35shbase-client in the patch passed.
+1 💚unit0m 40shbase-zookeeper in the patch passed.
26m 49s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/11/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit compile shadedjars
unameLinux 3920541c63cc 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 3df4556
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/11/testReport/
Max. process+thread count324 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/11/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec1m 1sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗mvndep0m 22sMaven dependency ordering for branch
+1 💚mvninstall4m 25smaster passed
+1 💚compile1m 41smaster passed
+1 💚checkstyle0m 34smaster passed
+1 💚spotbugs2m 15smaster passed
+1 💚spotless1m 24sbranch has no errors when running spotless:check.
-0 ⚠️patch1m 42sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall4m 38sthe patch passed
+1 💚compile1m 53sthe patch passed
-0 ⚠️javac1m 17s/results-compile-javac-hbase-client.txthbase-client generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101)
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 39sthe patch passed
+1 💚spotbugs2m 5sthe patch passed
+1 💚hadoopcheck15m 28sPatch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚spotless1m 3spatch has no errors when running spotless:check.
_ Other Tests _
+1 💚asflicense0m 20sThe patch does not generate ASF License warnings.
47m 37s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/11/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
unameLinux 92c832a1787a 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 3df4556
Default JavaEclipse Adoptium-17.0.11+9
Max. process+thread count81 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/11/console
versionsgit=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Divneet18

Divneet18 commented Jul 15, 2024

Copy link
Copy Markdown
ContributorAuthor

@Apache9@virajjasani we have a clean commit now. unless something else needs to be changed?

@Divneet18
Divneet18 requested a review from Apache9July 15, 2024 17:08
@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 59sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 21sMaven dependency ordering for branch
+1 💚mvninstall3m 52smaster passed
+1 💚compile0m 56smaster passed
+1 💚javadoc0m 43smaster passed
+1 💚shadedjars6m 36sbranch has no errors when building our shaded downstream artifacts.
-0 ⚠️patch6m 53sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 35sthe patch passed
+1 💚compile0m 55sthe patch passed
+1 💚javac0m 55sthe patch passed
+1 💚javadoc0m 39sthe patch passed
+1 💚shadedjars6m 5spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit2m 2shbase-client in the patch passed.
+1 💚unit0m 52shbase-zookeeper in the patch passed.
29m 11s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/12/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit compile shadedjars
unameLinux 38c9748cd0a9 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 0e96e4c
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/12/testReport/
Max. process+thread count324 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/12/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 18sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall3m 48smaster passed
+1 💚compile1m 19smaster passed
+1 💚checkstyle0m 28smaster passed
+1 💚spotbugs1m 9smaster passed
+1 💚spotless0m 45sbranch has no errors when running spotless:check.
-0 ⚠️patch0m 59sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 56sthe patch passed
+1 💚compile1m 10sthe patch passed
-0 ⚠️javac0m 48s/results-compile-javac-hbase-client.txthbase-client generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101)
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 27sthe patch passed
+1 💚spotbugs1m 23sthe patch passed
+1 💚hadoopcheck10m 23sPatch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚spotless0m 44spatch has no errors when running spotless:check.
_ Other Tests _
+1 💚asflicense0m 21sThe patch does not generate ASF License warnings.
32m 24s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/12/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
unameLinux 83eb4ffb9383 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 0e96e4c
Default JavaEclipse Adoptium-17.0.11+9
Max. process+thread count83 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/12/console
versionsgit=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@virajjasani

Copy link
Copy Markdown
Contributor

javac warning does not seem relevant

@virajjasanivirajjasani 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.

+1

@virajjasani

Copy link
Copy Markdown
Contributor

Let's wait for @Apache9

@Apache9Apache9 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.

In general LGTM. Only some small nits.

Thanks.

private static int CHILDREN = 5;

private static ReadOnlyZKClient RO_ZK;
static final HashedWheelTimer RETRY_TIMER = new HashedWheelTimer(

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.

Pealse use 'private static final' since we do not need to expose it to other classes.

And please shutdown it in afterClass method.

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.

@Divneet18 please take care of this and you can also start preparing branch-2 PR after addressing this.

@virajjasanivirajjasani changed the title HBASE-28428 : ConnectionRegistry APIs should have timeoutHBASE-28428 : Zookeeper ConnectionRegistry APIs should have timeoutJul 16, 2024

@pankaj72981pankaj72981 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.

Overall changes LGTM, apart from the nits.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec1m 1sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 20smaster passed
+1 💚compile0m 44smaster passed
+1 💚javadoc0m 34smaster passed
+1 💚shadedjars5m 25sbranch has no errors when building our shaded downstream artifacts.
-0 ⚠️patch5m 45sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 5sthe patch passed
+1 💚compile0m 39sthe patch passed
+1 💚javac0m 39sthe patch passed
+1 💚javadoc0m 33sthe patch passed
+1 💚shadedjars5m 17spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit1m 38shbase-client in the patch passed.
+1 💚unit0m 49shbase-zookeeper in the patch passed.
24m 50s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/13/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit compile shadedjars
unameLinux d6e13bef614e 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 5f1752b
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/13/testReport/
Max. process+thread count354 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/13/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 36sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for branch
+1 💚mvninstall2m 58smaster passed
+1 💚compile1m 11smaster passed
+1 💚checkstyle0m 27smaster passed
+1 💚spotbugs1m 9smaster passed
+1 💚spotless0m 44sbranch has no errors when running spotless:check.
-0 ⚠️patch0m 58sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 56sthe patch passed
+1 💚compile1m 9sthe patch passed
-0 ⚠️javac0m 47s/results-compile-javac-hbase-client.txthbase-client generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101)
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 28sthe patch passed
+1 💚spotbugs1m 22sthe patch passed
+1 💚hadoopcheck10m 35sPatch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚spotless0m 44spatch has no errors when running spotless:check.
_ Other Tests _
+1 💚asflicense0m 20sThe patch does not generate ASF License warnings.
31m 53s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/13/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
unameLinux b68268ceb839 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 5f1752b
Default JavaEclipse Adoptium-17.0.11+9
Max. process+thread count83 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/13/console
versionsgit=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec1m 2sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall3m 3smaster passed
+1 💚compile0m 46smaster passed
+1 💚javadoc0m 40smaster passed
+1 💚shadedjars5m 42sbranch has no errors when building our shaded downstream artifacts.
-0 ⚠️patch6m 1sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 6sthe patch passed
+1 💚compile0m 40sthe patch passed
+1 💚javac0m 40sthe patch passed
+1 💚javadoc0m 33sthe patch passed
+1 💚shadedjars5m 19spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit1m 38shbase-client in the patch passed.
+1 💚unit0m 48shbase-zookeeper in the patch passed.
25m 3s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit compile shadedjars
unameLinux 8341579acf02 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / df28809
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/testReport/
Max. process+thread count353 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 35sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall2m 53smaster passed
+1 💚compile1m 10smaster passed
+1 💚checkstyle0m 28smaster passed
+1 💚spotbugs1m 8smaster passed
+1 💚spotless0m 44sbranch has no errors when running spotless:check.
-0 ⚠️patch0m 58sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 54sthe patch passed
+1 💚compile1m 10sthe patch passed
-0 ⚠️javac0m 47s/results-compile-javac-hbase-client.txthbase-client generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101)
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 28sthe patch passed
+1 💚spotbugs1m 22sthe patch passed
+1 💚hadoopcheck10m 21sPatch does not cause any errors with Hadoop 3.3.6 3.4.0.
-1 ❌spotless0m 19spatch has 26 errors when running spotless:check, run spotless:apply to fix.
_ Other Tests _
+1 💚asflicense0m 19sThe patch does not generate ASF License warnings.
31m 0s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
unameLinux f42c72cfae3f 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / df28809
Default JavaEclipse Adoptium-17.0.11+9
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count83 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/14/console
versionsgit=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 45sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall2m 57smaster passed
+1 💚compile0m 39smaster passed
+1 💚javadoc0m 32smaster passed
+1 💚shadedjars5m 21sbranch has no errors when building our shaded downstream artifacts.
-0 ⚠️patch5m 40sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 58sthe patch passed
+1 💚compile0m 40sthe patch passed
+1 💚javac0m 40sthe patch passed
+1 💚javadoc0m 34sthe patch passed
+1 💚shadedjars5m 20spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit1m 39shbase-client in the patch passed.
+1 💚unit0m 48shbase-zookeeper in the patch passed.
23m 43s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/15/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#5837
Optional Testsjavac javadoc unit compile shadedjars
unameLinux 9d8383b18863 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / afdffae
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/15/testReport/
Max. process+thread count320 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/15/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 36sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for branch
+1 💚mvninstall2m 54smaster passed
+1 💚compile1m 11smaster passed
+1 💚checkstyle0m 28smaster passed
+1 💚spotbugs1m 7smaster passed
+1 💚spotless0m 43sbranch has no errors when running spotless:check.
-0 ⚠️patch0m 57sUsed diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall2m 54sthe patch passed
+1 💚compile1m 11sthe patch passed
-0 ⚠️javac0m 48s/results-compile-javac-hbase-client.txthbase-client generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101)
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 28sthe patch passed
+1 💚spotbugs1m 22sthe patch passed
+1 💚hadoopcheck10m 22sPatch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚spotless0m 44spatch has no errors when running spotless:check.
_ Other Tests _
+1 💚asflicense0m 20sThe patch does not generate ASF License warnings.
31m 13s
SubsystemReport/Notes
DockerClientAPI=1.46 ServerAPI=1.46 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/15/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5837
Optional Testsdupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
unameLinux 57b3046ce85c 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / afdffae
Default JavaEclipse Adoptium-17.0.11+9
Max. process+thread count82 (vs. ulimit of 30000)
modulesC: hbase-client hbase-zookeeper U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5837/15/console
versionsgit=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@virajjasani
virajjasani merged commit 8f5516d into apache:masterJul 18, 2024
virajjasani pushed a commit that referenced this pull request Jul 18, 2024
…5837)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Pankaj Kumar <pankajkumar@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
virajjasani pushed a commit that referenced this pull request Jul 19, 2024
…6095) (#5837)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Pankaj Kumar <pankajkumar@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
virajjasani pushed a commit that referenced this pull request Jul 19, 2024
…6095) (#5837)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Pankaj Kumar <pankajkumar@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
virajjasani pushed a commit that referenced this pull request Jul 19, 2024
…6095) (#5837)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Pankaj Kumar <pankajkumar@apache.org>
Signed-off-by: Viraj Jasani <vjasani@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

@Divneet18@Apache-HBase@virajjasani@Apache9@pankaj72981