This is an automated email from the ASF dual-hosted git repository.
davidzollo pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new f367a8c87f [Test][E2E] Give the E2E Flink TaskManager enough metaspace
and heartbeat slack (#11645)
f367a8c87f is described below
commit f367a8c87f910b236803761ed2cbe779647d7846
Author: Daniel <[email protected]>
AuthorDate: Mon Aug 10 04:06:22 2026 +0800
[Test][E2E] Give the E2E Flink TaskManager enough metaspace and heartbeat
slack (#11645)
Co-authored-by: DanielLeens <[email protected]>
---
.../container/flink/AbstractTestFlinkContainer.java | 15 +++++++++++++++
.../e2e/common/container/flink/Flink20Container.java | 18 +++++++++++++++++-
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git
a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
index 1e872040ad..980b502685 100644
---
a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
+++
b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/AbstractTestFlinkContainer.java
@@ -59,6 +59,21 @@ public abstract class AbstractTestFlinkContainer extends
AbstractTestContainer {
"taskmanager.numberOfTaskSlots: 10",
"parallelism.default: 4",
"env.java.opts: -Doracle.jdbc.timezoneAsRegion=false",
+ // One TaskManager serves every job of a test class, and
each SeaTunnel job
+ // loads its connector jars through a fresh user-code
ClassLoader. With the
+ // Flink default of 256mb the metaspace is exhausted
part-way through a long
+ // class ("OutOfMemoryError: Metaspace"), which kills the
TaskManager and fails
+ // whichever job happens to be running. Raise the process
budget alongside it so
+ // the extra metaspace is not taken out of the derived
heap/network/managed
+ // pools.
+ "taskmanager.memory.process.size: 2048m",
+ "taskmanager.memory.jvm-metaspace.size: 512m",
+ // CI runners host several containers at once, so a
TaskManager can be starved
+ // of CPU for longer than the 50s Flink default before it
answers a heartbeat.
+ // A missed heartbeat fails the job outright, because
SeaTunnel jobs run with
+ // NoRestartBackoffTimeStrategy unless the job config asks
for restarts.
+ "heartbeat.timeout: 120000",
+ "heartbeat.interval: 10000",
// limit restart attempts in e2e to avoid infinite retries
"restart-strategy: fixed-delay",
"restart-strategy.fixed-delay.attempts: 2",
diff --git
a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink20Container.java
b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink20Container.java
index 544dd9c905..96e4030858 100644
---
a/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink20Container.java
+++
b/seatunnel-e2e/seatunnel-e2e-common/src/test/java/org/apache/seatunnel/e2e/common/container/flink/Flink20Container.java
@@ -88,8 +88,24 @@ public class Flink20Container extends
AbstractTestFlinkContainer {
"",
"# Memory Configuration",
"jobmanager.memory.process.size: 1600m",
- "taskmanager.memory.process.size: 1728m",
+ // One TaskManager serves every job of a test class,
and each SeaTunnel job
+ // loads its connector jars through a fresh user-code
ClassLoader. The
+ // implied 256m metaspace was exhausted part-way
through long classes
+ // ("OutOfMemoryError: Metaspace"), killing the
TaskManager. The process
+ // budget grows by the same amount the metaspace does,
so the derived Flink
+ // memory stays at 1280m and the heap/network/managed
pools are unchanged.
+ "taskmanager.memory.process.size: 2048m",
"taskmanager.memory.flink.size: 1280m",
+ "taskmanager.memory.jvm-metaspace.size: 512m",
+ "",
+ "# Heartbeat Configuration",
+ // CI runners host several containers at once, so a
TaskManager can be
+ // starved of CPU for longer than the 50s Flink
default before it answers a
+ // heartbeat. A missed heartbeat fails the job
outright, because SeaTunnel
+ // jobs run with NoRestartBackoffTimeStrategy unless
the job config asks for
+ // restarts.
+ "heartbeat.timeout: 120000",
+ "heartbeat.interval: 10000",
"",
"# Network Buffer Configuration - Fix for insufficient
network buffers",
"taskmanager.memory.network.fraction: 0.2",