Skip to content

HBASE-27947 RegionServer OOM when outbound channel backed up - #5350

Merged
bbeaudreault merged 11 commits into
apache:masterfrom
HubSpot:HBASE-27947
Aug 18, 2023
Merged

HBASE-27947 RegionServer OOM when outbound channel backed up#5350
bbeaudreault merged 11 commits into
apache:masterfrom
HubSpot:HBASE-27947

Conversation

@bbeaudreault

Copy link
Copy Markdown
Contributor

If a client is not able to read response bytes from the channel faster than the server can serve them, netty's pending outbound bytes will build up. If it builds up long enough, it will result in an OOM. We protect against this with the following:

  • Use netty's WriteBufferWaterMark to trigger channel.setAutoRead(false). When the high watermark is exceeded, autoRead is disabled. When autoRead is disabled, the server will not continue to read incoming bytes from the client, thus will not enqueue more calls from the client.
  • Already enqueued calls will still be served, and even with writability checks its possible to OOM. We add a new fatal threshold, which should be higher than the high watermark. If exceeded, the connection will be forcibly closed so that we can reclaim the memory.

Adds new configs:

  • hbase.server.netty.writable.watermark.low
  • hbase.server.netty.writable.watermark.high
  • hbase.server.netty.writable.watermark.fatal

All 3 default to 0. The setAutoRead management is disabled if both high and low are 0. Enforcing of the fatal threshold is disabled if fatal is 0. Thus this new behavior is disabled by default.

Adds new metrics:

  • unwritableTime - histogram showing how much backpressure is being applied due to configured watermark
  • maxOutboundBytesExceeded - counter showing how many times we needed to forcibly close a connection
  • nettyTotalPendingOutboundBytes - current aggregate size of pending outbound bytes for all connections on the server
  • nettyMaxPendingOutboundBytes - current max pending outbound bytes across all channels

A version of this has been tested internally at my company. We set the fatal limit to 100mb, and were able to avoid any OOMs in our test case.

I still need to add tests to AbstractTestIPC, but wanted to get feedback first.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 16sDocker 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 12sMaven dependency ordering for branch
+1 💚mvninstall2m 47smaster passed
+1 💚compile3m 16smaster passed
+1 💚checkstyle0m 58smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 23smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall2m 37sthe patch passed
+1 💚compile3m 13sthe patch passed
+1 💚javac3m 13sthe patch passed
-0 ⚠️checkstyle0m 15shbase-common: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
-0 ⚠️checkstyle0m 34shbase-server: The patch generated 1 new + 2 unchanged - 0 fixed = 3 total (was 2)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 55sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌spotless0m 13spatch has 25 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs2m 42sthe patch passed
_ Other Tests _
+1 💚asflicense0m 29sThe patch does not generate ASF License warnings.
35m 52s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux c5b1b4dcdd9d 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ab4b1d8
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count77 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 33sDocker 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 12sMaven dependency ordering for branch
+1 💚mvninstall2m 47smaster passed
+1 💚compile1m 18smaster passed
+1 💚shadedjars4m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 56smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall2m 36sthe patch passed
+1 💚compile1m 19sthe patch passed
+1 💚javac1m 19sthe patch passed
+1 💚shadedjars4m 39spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54sthe patch passed
_ Other Tests _
+1 💚unit2m 9shbase-common in the patch passed.
+1 💚unit0m 44shbase-hadoop-compat in the patch passed.
-1 ❌unit220m 18shbase-server in the patch failed.
248m 33s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 470f1332caca 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ab4b1d8
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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-5350/1/testReport/
Max. process+thread count4685 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 35sDocker 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 19sMaven dependency ordering for branch
+1 💚mvninstall2m 49smaster passed
+1 💚compile1m 15smaster passed
+1 💚shadedjars5m 7sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 44smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 14sthe patch passed
+1 💚compile1m 0sthe patch passed
+1 💚javac1m 0sthe patch passed
+1 💚shadedjars4m 55spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 44sthe patch passed
_ Other Tests _
+1 💚unit1m 47shbase-common in the patch passed.
+1 💚unit0m 35shbase-hadoop-compat in the patch passed.
-1 ❌unit224m 35shbase-server in the patch failed.
251m 27s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 69e422149c7f 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 / ab4b1d8
Default JavaTemurin-1.8.0_352-b08
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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-5350/1/testReport/
Max. process+thread count4626 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 12sDocker 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 10sMaven dependency ordering for branch
+1 💚mvninstall2m 46smaster passed
+1 💚compile3m 16smaster passed
+1 💚checkstyle0m 59smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 20smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 32sthe patch passed
+1 💚compile3m 14sthe patch passed
+1 💚javac3m 14sthe patch passed
+1 💚checkstyle0m 59sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 56sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 44sthe patch passed
_ Other Tests _
+1 💚asflicense0m 26sThe patch does not generate ASF License warnings.
36m 10s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 16d183446185 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ab4b1d8
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count76 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 🆗reexec0m 32sDocker 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 33smaster passed
+1 💚compile1m 20smaster passed
+1 💚shadedjars4m 39sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 39sthe patch passed
+1 💚compile1m 18sthe patch passed
+1 💚javac1m 18sthe patch passed
+1 💚shadedjars4m 40spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 55sthe patch passed
_ Other Tests _
+1 💚unit2m 10shbase-common in the patch passed.
+1 💚unit0m 43shbase-hadoop-compat in the patch passed.
+1 💚unit219m 16shbase-server in the patch passed.
247m 9s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux d8d25a0753f8 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / ab4b1d8
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/testReport/
Max. process+thread count4646 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 23sDocker 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 18sMaven dependency ordering for branch
+1 💚mvninstall2m 13smaster passed
+1 💚compile1m 2smaster passed
+1 💚shadedjars5m 1sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 46smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall2m 15sthe patch passed
+1 💚compile1m 1sthe patch passed
+1 💚javac1m 1sthe patch passed
+1 💚shadedjars4m 55spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 43sthe patch passed
_ Other Tests _
+1 💚unit1m 44shbase-common in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit224m 55shbase-server in the patch passed.
250m 24s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 64ec09cdfe51 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 / ab4b1d8
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/testReport/
Max. process+thread count4615 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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 boolean handleFatalThreshold(ChannelHandlerContext ctx) {
int fatalThreshold = rpcServer.getWriteBufferFatalThreshold();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We just need this threshold? Let's just pass the threshold in?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Not sure what you mean here. You mean instead of exposing a getter?

I want to use a getter here so that the fatal threshold can be live updated with update_config. If I passed it into the NettyRpcServerResponseEncoder, it would be static for the lifetime of a connection. I could pass in an IntSupplier instead, but is that much better than passing in the NettyRpcServer? I'm happy to do that if preferred

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.

Let's pass an IntSupplier and add comment to say we want to support update_config so we can not pass the threshold in directly.

return false;
}

NettyServerRpcConnection conn = NettyServerRpcConnection.get(channel);

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.

Just pass the connection in when creating the encoder? Like what we have done in decoder?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

The decoder is created after the NettyServerRpcConnection is constructed. The encoder unfortunately is created in NettyRpcServer when the channel is first initialized, before the NettyServerRpcConnection is constructed. Maybe we can refactor a bit?

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.

Let's refactor. Using different pattern for encoder and decoder will make others confusing...

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Done

// when SslHandler is enabled, as it prefers to send a close_notify to the client first.
channel.config().setOption(ChannelOption.SO_LINGER, 0);
NettyUnsafeUtils.closeDirect(channel);
aborted = true;

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.

After thte above close, channel.isOpen could still returns true? Otherwise we do not need to test aborted in the below isConnectionOpen method?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

TBH I'm not 100% sure. I added this just to be sure, but I can try digging deeper in the code to see where in process isConnectionOpen() would turn false.

@bbeaudreaultbbeaudreaultAug 14, 2023

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Ok I traced through the code.

  • Since this must be called in the event loop, we don't need to worry about thread safety
  • Since we set SO_LINGER to 0, the call to closeDirect should socket.close()
  • This will cause isConnectionOpen() to return false

So we should be ok to remove the aborted boolean. I'm going to run it through my test case and see if I noticed any duplicate logging or anything to indicate otherwise.

@bbeaudreaultbbeaudreaultAug 14, 2023

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Done. Didn't see any issues in tests.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 25sDocker 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 12sMaven dependency ordering for branch
+1 💚mvninstall2m 44smaster passed
+1 💚compile3m 12smaster passed
+1 💚checkstyle0m 53smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 7smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 10sMaven dependency ordering for patch
+1 💚mvninstall2m 33sthe patch passed
+1 💚compile3m 8sthe patch passed
+1 💚javac3m 8sthe patch passed
+1 💚checkstyle0m 49sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck9m 34sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚spotless0m 39spatch has no errors when running spotless:check.
+1 💚spotbugs2m 30sthe patch passed
_ Other Tests _
+1 💚asflicense0m 23sThe patch does not generate ASF License warnings.
36m 40s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux be693ffe6357 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 / 20c9e4b
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count79 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/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 31sDocker 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 13sMaven dependency ordering for branch
+1 💚mvninstall2m 33smaster passed
+1 💚compile1m 19smaster passed
+1 💚shadedjars4m 39sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 56smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 37sthe patch passed
+1 💚compile1m 19sthe patch passed
+1 💚javac1m 19sthe patch passed
+1 💚shadedjars4m 38spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 52sthe patch passed
_ Other Tests _
+1 💚unit2m 14shbase-common in the patch passed.
+1 💚unit0m 43shbase-hadoop-compat in the patch passed.
+1 💚unit221m 41shbase-server in the patch passed.
249m 25s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux edb302755d9b 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 20c9e4b
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/testReport/
Max. process+thread count4681 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 39sDocker 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 18sMaven dependency ordering for branch
+1 💚mvninstall2m 33smaster passed
+1 💚compile1m 0smaster passed
+1 💚shadedjars5m 21sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 53smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 27sthe patch passed
+1 💚compile1m 8sthe patch passed
+1 💚javac1m 8sthe patch passed
+1 💚shadedjars5m 0spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 42sthe patch passed
_ Other Tests _
+1 💚unit1m 43shbase-common in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit223m 4shbase-server in the patch passed.
250m 42s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 9d74c4e7cdf2 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 / 20c9e4b
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/testReport/
Max. process+thread count4604 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/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.

Comment threadhbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java Outdated
Comment threadhbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java Outdated
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 12sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall2m 30smaster passed
+1 💚compile3m 15smaster passed
+1 💚checkstyle1m 0smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 27smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 30sthe patch passed
+1 💚compile3m 16sthe patch passed
+1 💚javac3m 16sthe patch passed
-0 ⚠️checkstyle0m 15shbase-common: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
-0 ⚠️checkstyle0m 33shbase-server: The patch generated 1 new + 2 unchanged - 0 fixed = 3 total (was 2)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 53sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌spotless0m 14spatch has 27 errors when running spotless:check, run spotless:apply to fix.
-1 ❌spotbugs1m 36shbase-server generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
_ Other Tests _
+1 💚asflicense0m 28sThe patch does not generate ASF License warnings.
35m 19s
ReasonTests
FindBugsmodule:hbase-server
Unread field:NettyServerRpcConnection.java:[line 47]
Unused field:NettyServerRpcConnection.java
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux a56855ecddb2 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2fb2ae1
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/patch-spotless.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count77 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/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.

@bbeaudreault

Copy link
Copy Markdown
ContributorAuthor

@Apache9 I just pushed a change which includes a bit of a refactor:

  • Change NettyUnsafeUtils.closeDirect to closeImmediately, and have it manage SO_LINGER there. Improve javadoc to say why this is important.
  • Move all of the writability protections (aborting and setAutoRead) into a new single ChannelDuplexHandler. I felt it was awkward to have this in the Connection, where we need to assert inEventLoop.... Feels better to just put the code itself in the event loop.
  • Added tests. It was hard to trigger the fatal threshold. In order to do that I had to change NettyServerCall sendResponseIfReady to call NettyServerRpcConnection doRespond, so that I could mock the writeAndFlush to skip the flush. The side effect here is now that we do safeWriteAndFlush, we will log any failures from normal responses just like other callers to doRespond.

Let me know what you think

@InterfaceAudience.Private
protected NettyRpcServerPreambleHandler createNettyRpcServerPreambleHandler() {
return new NettyRpcServerPreambleHandler(NettyRpcServer.this);
protected NettyServerRpcConnection createNettyServerRpcConnection(Channel channel) {

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

this change is no longer strictly necessary, but i kept it because i think it's a cleaner way to do what we want to do. in all cases, tests were overriding createNettyRpcServerPreambleHandler() just so they could inject a special NettyServerRpcConnection. So it works better to simply override the creation of the NettyServerRpcConnection directly.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 10sDocker 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 10sMaven dependency ordering for branch
+1 💚mvninstall2m 37smaster passed
+1 💚compile3m 15smaster passed
+1 💚checkstyle0m 59smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 18smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 33sthe patch passed
+1 💚compile3m 13sthe patch passed
+1 💚javac3m 13sthe patch passed
-0 ⚠️checkstyle0m 15shbase-common: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 54sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌spotless0m 13spatch has 27 errors when running spotless:check, run spotless:apply to fix.
+1 💚spotbugs2m 41sthe patch passed
_ Other Tests _
+1 💚asflicense0m 28sThe patch does not generate ASF License warnings.
35m 15s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 7144d800a71f 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2fb2ae1
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count77 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/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.

@bbeaudreault

Copy link
Copy Markdown
ContributorAuthor

I went through and deployed this refactor into my test cluster. Still works as expected.

One thing to note is that when we abort the connection, the doRespond change does cause a bunch of noise like this:

2023-08-15T19:45:07,900 [NettyRpcServer-3-6] WARN org.apache.hadoop.hbase.util.NettyFutureUtils: IO operation failed
org.apache.hbase.thirdparty.io.netty.channel.StacklessClosedChannelException: null
at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel.close(ChannelPromise)(Unknown Source) ~[hbase-shaded-netty-4.1.4.jar:?]

This gets spammed for all of the requests that were in flight when the connection was closed. I wonder if I should add a boolean verbose argument to doRespond method so that I can keep the old behavior but still override it for the test.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 32sDocker 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 41smaster passed
+1 💚compile1m 20smaster passed
+1 💚shadedjars4m 41sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall2m 37sthe patch passed
+1 💚compile1m 20sthe patch passed
+1 💚javac1m 20sthe patch passed
+1 💚shadedjars4m 38spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54sthe patch passed
_ Other Tests _
+1 💚unit2m 11shbase-common in the patch passed.
+1 💚unit0m 44shbase-hadoop-compat in the patch passed.
+1 💚unit225m 29shbase-server in the patch passed.
253m 21s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 769a75088b0f 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2fb2ae1
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/testReport/
Max. process+thread count4698 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/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 23sDocker 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 9sMaven dependency ordering for branch
+1 💚mvninstall2m 12smaster passed
+1 💚compile1m 1smaster passed
+1 💚shadedjars4m 54sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 43smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 11sthe patch passed
+1 💚compile1m 0sthe patch passed
+1 💚javac1m 0sthe patch passed
+1 💚shadedjars4m 50spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 41sthe patch passed
_ Other Tests _
+1 💚unit1m 41shbase-common in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit228m 42shbase-server in the patch passed.
254m 19s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux ebf42f2f1639 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 / 2fb2ae1
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/testReport/
Max. process+thread count4684 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/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 11sDocker 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 10sMaven dependency ordering for branch
+1 💚mvninstall2m 34smaster passed
+1 💚compile3m 17smaster passed
+1 💚checkstyle1m 0smaster passed
+1 💚spotless0m 42sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 21smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 33sthe patch passed
+1 💚compile3m 17sthe patch passed
+1 💚javac3m 17sthe patch passed
+1 💚checkstyle0m 59sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 47sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 42sthe patch passed
_ Other Tests _
+1 💚asflicense0m 28sThe patch does not generate ASF License warnings.
35m 45s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 0c07945bf552 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2fb2ae1
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count79 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/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 24sDocker 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 10sMaven dependency ordering for branch
+1 💚mvninstall2m 7smaster passed
+1 💚compile0m 59smaster passed
+1 💚shadedjars4m 45sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 42smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 10sthe patch passed
+1 💚compile0m 59sthe patch passed
+1 💚javac0m 59sthe patch passed
+1 💚shadedjars4m 44spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 41sthe patch passed
_ Other Tests _
+1 💚unit1m 42shbase-common in the patch passed.
+1 💚unit0m 32shbase-hadoop-compat in the patch passed.
+1 💚unit222m 35shbase-server in the patch passed.
247m 10s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux b0a367d1e0e2 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 / 2fb2ae1
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/testReport/
Max. process+thread count4965 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/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 34sDocker 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 12sMaven dependency ordering for branch
+1 💚mvninstall2m 33smaster passed
+1 💚compile1m 19smaster passed
+1 💚shadedjars4m 39sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 35sthe patch passed
+1 💚compile1m 21sthe patch passed
+1 💚javac1m 21sthe patch passed
+1 💚shadedjars4m 41spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 53sthe patch passed
_ Other Tests _
+1 💚unit2m 11shbase-common in the patch passed.
+1 💚unit0m 44shbase-hadoop-compat in the patch passed.
+1 💚unit222m 35shbase-server in the patch passed.
250m 4s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f24c4e7c8f48 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 2fb2ae1
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/testReport/
Max. process+thread count4548 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/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.

+1.

Thanks for tuning this!

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

Left 2 comments related to issues that I noticed while reviewing this.

public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
throws Exception {
if (handleFatalThreshold(ctx)) {
promise.setFailure(EXCEPTION);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You must also release the msg via ReferenceCountUtil.release(msg) before return early as otherwise you might leak memory.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Good catch on this, thank you

public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
throws Exception {
if (handleFatalThreshold(ctx)) {
promise.setFailure(EXCEPTION);

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.

Also as a side note reusing a static exception instance is only safe if the instance does not support addSuppressed(...) as otherwise it is possible that you will end up with a memory leak if someone add suppressed exceptions to the static instance, which is possible in this case as you dont know what listeners etc will do.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 14sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall2m 40smaster passed
+1 💚compile3m 14smaster passed
+1 💚checkstyle0m 56smaster passed
+1 💚spotless0m 41sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 17smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for patch
+1 💚mvninstall2m 35sthe patch passed
+1 💚compile3m 14sthe patch passed
+1 💚javac3m 14sthe patch passed
+1 💚checkstyle0m 57sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck8m 49sPatch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚spotless0m 41spatch has no errors when running spotless:check.
+1 💚spotbugs2m 41sthe patch passed
_ Other Tests _
+1 💚asflicense0m 28sThe patch does not generate ASF License warnings.
35m 41s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5350
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 0867c55968aa 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / b1fd92d
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count78 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/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 24sDocker 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 19sMaven dependency ordering for branch
+1 💚mvninstall2m 8smaster passed
+1 💚compile0m 58smaster passed
+1 💚shadedjars4m 46sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 41smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall2m 7sthe patch passed
+1 💚compile1m 4sthe patch passed
+1 💚javac1m 4sthe patch passed
+1 💚shadedjars5m 6spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 58sthe patch passed
_ Other Tests _
+1 💚unit2m 10shbase-common in the patch passed.
+1 💚unit0m 35shbase-hadoop-compat in the patch passed.
+1 💚unit218m 7shbase-server in the patch passed.
244m 1s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux ba78f852fef3 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 / b1fd92d
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/testReport/
Max. process+thread count4714 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/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 33sDocker 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 13sMaven dependency ordering for branch
+1 💚mvninstall2m 35smaster passed
+1 💚compile1m 18smaster passed
+1 💚shadedjars4m 42sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 38sthe patch passed
+1 💚compile1m 19sthe patch passed
+1 💚javac1m 19sthe patch passed
+1 💚shadedjars4m 42spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 54sthe patch passed
_ Other Tests _
+1 💚unit2m 10shbase-common in the patch passed.
+1 💚unit0m 42shbase-hadoop-compat in the patch passed.
+1 💚unit221m 21shbase-server in the patch passed.
249m 0s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5350
Optional Testsjavac javadoc unit shadedjars compile
unameLinux ae4b6a144e86 5.4.0-152-generic #169-Ubuntu SMP Tue Jun 6 22:23:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / b1fd92d
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/testReport/
Max. process+thread count4626 (vs. ulimit of 30000)
modulesC: hbase-common hbase-hadoop-compat hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreault
bbeaudreault merged commit 8ccb910 into apache:masterAug 18, 2023
@bbeaudreault
bbeaudreault deleted the HBASE-27947 branch August 18, 2023 13:59
bbeaudreault added a commit that referenced this pull request Aug 18, 2023
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Reviewed-by: Norman Maurer <norman_maurer@apple.com>
bbeaudreault added a commit that referenced this pull request Aug 18, 2023
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Reviewed-by: Norman Maurer <norman_maurer@apple.com>
bbeaudreault added a commit to HubSpot/hbase that referenced this pull request Aug 21, 2023
…5350)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Reviewed-by: Norman Maurer <norman_maurer@apple.com>
vinayakphegde pushed a commit to vinayakphegde/hbase that referenced this pull request Apr 4, 2024
…5350)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Reviewed-by: Norman Maurer <norman_maurer@apple.com>
(cherry picked from commit 29ecfc5)
Change-Id: I7ab0cdcbb9c8ee615ad50aacad46145ab50c566f
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.

4 participants

@bbeaudreault@Apache-HBase@normanmaurer@Apache9