This is an automated email from the ASF dual-hosted git repository.
virajjasani pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new ed22ae8197b HBASE-30320 TestMemStoreLAB#testLABChunkQueue OOM on fast
hardware due to unbounded off-pool chunk allocation (#8533)
ed22ae8197b is described below
commit ed22ae8197b238c0d4575f09d547b2279dc90650
Author: Umesh <[email protected]>
AuthorDate: Wed Aug 12 11:27:33 2026 +0530
HBASE-30320 TestMemStoreLAB#testLABChunkQueue OOM on fast hardware due to
unbounded off-pool chunk allocation (#8533)
Signed-off-by: Duo Zhang <[email protected]>
Signed-off-by: Andrew Purtell <[email protected]>
Signed-off-by: Viraj Jasani <[email protected]>
---
.../java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java
index dbf8e4cbc89..427e39cfb3f 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java
@@ -329,12 +329,19 @@ public class TestMemStoreLAB {
private Thread getChunkQueueTestThread(final MemStoreLABImpl mslab, String
threadName,
ExtendedCell cellToCopyInto) {
+ // Reserve 20% of max heap as safety margin to prevent OOM on fast
hardware where threads can
+ // allocate many GB of chunks within the 1-second test window.
+ final long maxMemory =
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax();
+ final long memoryLimit = (long) (maxMemory * 0.8);
Thread thread = new Thread() {
volatile boolean stopped = false;
@Override
public void run() {
while (!stopped) {
+ if
(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed() >
memoryLimit) {
+ break;
+ }
// keep triggering chunk retirement
mslab.copyCellInto(cellToCopyInto);
}