Skip to content

Conversation

@bbeaudreault
Copy link
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.

@bbeaudreault bbeaudreault requested a review from Apache9 August 12, 2023 19:55
@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 16s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 2m 47s master passed
+1 💚 compile 3m 16s master passed
+1 💚 checkstyle 0m 58s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 23s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for patch
+1 💚 mvninstall 2m 37s the patch passed
+1 💚 compile 3m 13s the patch passed
+1 💚 javac 3m 13s the patch passed
-0 ⚠️ checkstyle 0m 15s hbase-common: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
-0 ⚠️ checkstyle 0m 34s hbase-server: The patch generated 1 new + 2 unchanged - 0 fixed = 3 total (was 2)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 55s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌ spotless 0m 13s patch has 25 errors when running spotless:check, run spotless:apply to fix.
+1 💚 spotbugs 2m 42s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 29s The patch does not generate ASF License warnings.
35m 52s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Eclipse Adoptium-11.0.17+8
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 77 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 33s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 2m 47s master passed
+1 💚 compile 1m 18s master passed
+1 💚 shadedjars 4m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 56s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 2m 36s the patch passed
+1 💚 compile 1m 19s the patch passed
+1 💚 javac 1m 19s the patch passed
+1 💚 shadedjars 4m 39s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s the patch passed
_ Other Tests _
+1 💚 unit 2m 9s hbase-common in the patch passed.
+1 💚 unit 0m 44s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 220m 18s hbase-server in the patch failed.
248m 33s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Eclipse Adoptium-11.0.17+8
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/testReport/
Max. process+thread count 4685 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 35s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 19s Maven dependency ordering for branch
+1 💚 mvninstall 2m 49s master passed
+1 💚 compile 1m 15s master passed
+1 💚 shadedjars 5m 7s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 44s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 14s the patch passed
+1 💚 compile 1m 0s the patch passed
+1 💚 javac 1m 0s the patch passed
+1 💚 shadedjars 4m 55s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 44s the patch passed
_ Other Tests _
+1 💚 unit 1m 47s hbase-common in the patch passed.
+1 💚 unit 0m 35s hbase-hadoop-compat in the patch passed.
-1 ❌ unit 224m 35s hbase-server in the patch failed.
251m 27s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Temurin-1.8.0_352-b08
unit https://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 Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/testReport/
Max. process+thread count 4626 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/1/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 12s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 2m 46s master passed
+1 💚 compile 3m 16s master passed
+1 💚 checkstyle 0m 59s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 20s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 32s the patch passed
+1 💚 compile 3m 14s the patch passed
+1 💚 javac 3m 14s the patch passed
+1 💚 checkstyle 0m 59s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 56s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 44s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 26s The patch does not generate ASF License warnings.
36m 10s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Eclipse Adoptium-11.0.17+8
Max. process+thread count 76 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 33s master passed
+1 💚 compile 1m 20s master passed
+1 💚 shadedjars 4m 39s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 39s the patch passed
+1 💚 compile 1m 18s the patch passed
+1 💚 javac 1m 18s the patch passed
+1 💚 shadedjars 4m 40s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 55s the patch passed
_ Other Tests _
+1 💚 unit 2m 10s hbase-common in the patch passed.
+1 💚 unit 0m 43s hbase-hadoop-compat in the patch passed.
+1 💚 unit 219m 16s hbase-server in the patch passed.
247m 9s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/testReport/
Max. process+thread count 4646 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 23s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 13s master passed
+1 💚 compile 1m 2s master passed
+1 💚 shadedjars 5m 1s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 46s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for patch
+1 💚 mvninstall 2m 15s the patch passed
+1 💚 compile 1m 1s the patch passed
+1 💚 javac 1m 1s the patch passed
+1 💚 shadedjars 4m 55s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 43s the patch passed
_ Other Tests _
+1 💚 unit 1m 44s hbase-common in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 224m 55s hbase-server in the patch passed.
250m 24s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / ab4b1d8
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/testReport/
Max. process+thread count 4615 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/2/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

}

private boolean handleFatalThreshold(ChannelHandlerContext ctx) {
int fatalThreshold = rpcServer.getWriteBufferFatalThreshold();
Copy link
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
Contributor Author

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

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

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

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.

Copy link
Contributor Author

@bbeaudreault bbeaudreault Aug 14, 2023

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.

Copy link
Contributor Author

@bbeaudreault bbeaudreault Aug 14, 2023

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 25s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 2m 44s master passed
+1 💚 compile 3m 12s master passed
+1 💚 checkstyle 0m 53s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 7s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for patch
+1 💚 mvninstall 2m 33s the patch passed
+1 💚 compile 3m 8s the patch passed
+1 💚 javac 3m 8s the patch passed
+1 💚 checkstyle 0m 49s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 9m 34s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚 spotless 0m 39s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 30s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 23s The patch does not generate ASF License warnings.
36m 40s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 20c9e4b
Default Java Eclipse Adoptium-11.0.17+8
Max. process+thread count 79 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 31s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 33s master passed
+1 💚 compile 1m 19s master passed
+1 💚 shadedjars 4m 39s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 56s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 37s the patch passed
+1 💚 compile 1m 19s the patch passed
+1 💚 javac 1m 19s the patch passed
+1 💚 shadedjars 4m 38s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 52s the patch passed
_ Other Tests _
+1 💚 unit 2m 14s hbase-common in the patch passed.
+1 💚 unit 0m 43s hbase-hadoop-compat in the patch passed.
+1 💚 unit 221m 41s hbase-server in the patch passed.
249m 25s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 20c9e4b
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/testReport/
Max. process+thread count 4681 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 39s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for branch
+1 💚 mvninstall 2m 33s master passed
+1 💚 compile 1m 0s master passed
+1 💚 shadedjars 5m 21s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 53s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 27s the patch passed
+1 💚 compile 1m 8s the patch passed
+1 💚 javac 1m 8s the patch passed
+1 💚 shadedjars 5m 0s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 42s the patch passed
_ Other Tests _
+1 💚 unit 1m 43s hbase-common in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 223m 4s hbase-server in the patch passed.
250m 42s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 20c9e4b
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/testReport/
Max. process+thread count 4604 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/3/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 12s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 30s master passed
+1 💚 compile 3m 15s master passed
+1 💚 checkstyle 1m 0s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 27s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 30s the patch passed
+1 💚 compile 3m 16s the patch passed
+1 💚 javac 3m 16s the patch passed
-0 ⚠️ checkstyle 0m 15s hbase-common: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
-0 ⚠️ checkstyle 0m 33s hbase-server: The patch generated 1 new + 2 unchanged - 0 fixed = 3 total (was 2)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 53s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌ spotless 0m 14s patch has 27 errors when running spotless:check, run spotless:apply to fix.
-1 ❌ spotbugs 1m 36s hbase-server generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
_ Other Tests _
+1 💚 asflicense 0m 28s The patch does not generate ASF License warnings.
35m 19s
Reason Tests
FindBugs module:hbase-server
Unread field:NettyServerRpcConnection.java:[line 47]
Unused field:NettyServerRpcConnection.java
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Eclipse Adoptium-11.0.17+8
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/artifact/yetus-general-check/output/patch-spotless.txt
spotbugs https://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 count 77 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/4/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreault
Copy link
Contributor Author

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

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.

@bbeaudreault bbeaudreault requested a review from Apache9 August 15, 2023 16:02
@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 10s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 2m 37s master passed
+1 💚 compile 3m 15s master passed
+1 💚 checkstyle 0m 59s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 18s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 33s the patch passed
+1 💚 compile 3m 13s the patch passed
+1 💚 javac 3m 13s the patch passed
-0 ⚠️ checkstyle 0m 15s hbase-common: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 54s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
-1 ❌ spotless 0m 13s patch has 27 errors when running spotless:check, run spotless:apply to fix.
+1 💚 spotbugs 2m 41s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 28s The patch does not generate ASF License warnings.
35m 15s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Eclipse Adoptium-11.0.17+8
checkstyle https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
spotless https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/artifact/yetus-general-check/output/patch-spotless.txt
Max. process+thread count 77 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreault
Copy link
Contributor Author

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 32s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for branch
+1 💚 mvninstall 2m 41s master passed
+1 💚 compile 1m 20s master passed
+1 💚 shadedjars 4m 41s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 14s Maven dependency ordering for patch
+1 💚 mvninstall 2m 37s the patch passed
+1 💚 compile 1m 20s the patch passed
+1 💚 javac 1m 20s the patch passed
+1 💚 shadedjars 4m 38s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s the patch passed
_ Other Tests _
+1 💚 unit 2m 11s hbase-common in the patch passed.
+1 💚 unit 0m 44s hbase-hadoop-compat in the patch passed.
+1 💚 unit 225m 29s hbase-server in the patch passed.
253m 21s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/testReport/
Max. process+thread count 4698 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 23s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 9s Maven dependency ordering for branch
+1 💚 mvninstall 2m 12s master passed
+1 💚 compile 1m 1s master passed
+1 💚 shadedjars 4m 54s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 43s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 11s the patch passed
+1 💚 compile 1m 0s the patch passed
+1 💚 javac 1m 0s the patch passed
+1 💚 shadedjars 4m 50s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 41s the patch passed
_ Other Tests _
+1 💚 unit 1m 41s hbase-common in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 228m 42s hbase-server in the patch passed.
254m 19s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/testReport/
Max. process+thread count 4684 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/6/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 11s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 2m 34s master passed
+1 💚 compile 3m 17s master passed
+1 💚 checkstyle 1m 0s master passed
+1 💚 spotless 0m 42s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 21s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 33s the patch passed
+1 💚 compile 3m 17s the patch passed
+1 💚 javac 3m 17s the patch passed
+1 💚 checkstyle 0m 59s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 47s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 42s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 28s The patch does not generate ASF License warnings.
35m 45s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Eclipse Adoptium-11.0.17+8
Max. process+thread count 79 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 24s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 10s Maven dependency ordering for branch
+1 💚 mvninstall 2m 7s master passed
+1 💚 compile 0m 59s master passed
+1 💚 shadedjars 4m 45s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 42s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 10s the patch passed
+1 💚 compile 0m 59s the patch passed
+1 💚 javac 0m 59s the patch passed
+1 💚 shadedjars 4m 44s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 41s the patch passed
_ Other Tests _
+1 💚 unit 1m 42s hbase-common in the patch passed.
+1 💚 unit 0m 32s hbase-hadoop-compat in the patch passed.
+1 💚 unit 222m 35s hbase-server in the patch passed.
247m 10s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/testReport/
Max. process+thread count 4965 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 34s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for branch
+1 💚 mvninstall 2m 33s master passed
+1 💚 compile 1m 19s master passed
+1 💚 shadedjars 4m 39s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 35s the patch passed
+1 💚 compile 1m 21s the patch passed
+1 💚 javac 1m 21s the patch passed
+1 💚 shadedjars 4m 41s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 53s the patch passed
_ Other Tests _
+1 💚 unit 2m 11s hbase-common in the patch passed.
+1 💚 unit 0m 44s hbase-hadoop-compat in the patch passed.
+1 💚 unit 222m 35s hbase-server in the patch passed.
250m 4s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / 2fb2ae1
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/testReport/
Max. process+thread count 4548 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/7/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@Apache9 Apache9 left a comment

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!

Copy link
Contributor

@normanmaurer normanmaurer left a comment

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

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

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 14s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for branch
+1 💚 mvninstall 2m 40s master passed
+1 💚 compile 3m 14s master passed
+1 💚 checkstyle 0m 56s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 2m 17s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 11s Maven dependency ordering for patch
+1 💚 mvninstall 2m 35s the patch passed
+1 💚 compile 3m 14s the patch passed
+1 💚 javac 3m 14s the patch passed
+1 💚 checkstyle 0m 57s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 8m 49s Patch does not cause any errors with Hadoop 3.2.4 3.3.5.
+1 💚 spotless 0m 41s patch has no errors when running spotless:check.
+1 💚 spotbugs 2m 41s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 28s The patch does not generate ASF License warnings.
35m 41s
Subsystem Report/Notes
Docker ClientAPI=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 Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / b1fd92d
Default Java Eclipse Adoptium-11.0.17+8
Max. process+thread count 78 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/console
versions git=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 24s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 19s Maven dependency ordering for branch
+1 💚 mvninstall 2m 8s master passed
+1 💚 compile 0m 58s master passed
+1 💚 shadedjars 4m 46s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 41s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 12s Maven dependency ordering for patch
+1 💚 mvninstall 2m 7s the patch passed
+1 💚 compile 1m 4s the patch passed
+1 💚 javac 1m 4s the patch passed
+1 💚 shadedjars 5m 6s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 58s the patch passed
_ Other Tests _
+1 💚 unit 2m 10s hbase-common in the patch passed.
+1 💚 unit 0m 35s hbase-hadoop-compat in the patch passed.
+1 💚 unit 218m 7s hbase-server in the patch passed.
244m 1s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / b1fd92d
Default Java Temurin-1.8.0_352-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/testReport/
Max. process+thread count 4714 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 33s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for branch
+1 💚 mvninstall 2m 35s master passed
+1 💚 compile 1m 18s master passed
+1 💚 shadedjars 4m 42s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s master passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 13s Maven dependency ordering for patch
+1 💚 mvninstall 2m 38s the patch passed
+1 💚 compile 1m 19s the patch passed
+1 💚 javac 1m 19s the patch passed
+1 💚 shadedjars 4m 42s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 54s the patch passed
_ Other Tests _
+1 💚 unit 2m 10s hbase-common in the patch passed.
+1 💚 unit 0m 42s hbase-hadoop-compat in the patch passed.
+1 💚 unit 221m 21s hbase-server in the patch passed.
249m 0s
Subsystem Report/Notes
Docker ClientAPI=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 Tests javac javadoc unit shadedjars compile
uname Linux 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / b1fd92d
Default Java Eclipse Adoptium-11.0.17+8
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/testReport/
Max. process+thread count 4626 (vs. ulimit of 30000)
modules C: hbase-common hbase-hadoop-compat hbase-server U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5350/8/console
versions git=2.34.1 maven=3.8.6
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@bbeaudreault bbeaudreault merged commit 8ccb910 into apache:master Aug 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
bbeaudreault added a commit that referenced this pull request Aug 18, 2023
bbeaudreault added a commit to HubSpot/hbase that referenced this pull request Aug 21, 2023
vinayakphegde pushed a commit to vinayakphegde/hbase that referenced this pull request Apr 4, 2024
…5350)

Signed-off-by: Duo Zhang <[email protected]>
Reviewed-by: Norman Maurer <[email protected]>
(cherry picked from commit 29ecfc5)
Change-Id: I7ab0cdcbb9c8ee615ad50aacad46145ab50c566f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants