Merged upstreamTestingMerged Sep 15, 2026
Reuse SeaTunnel containers across selected E2E classes
Introduced opt-in JVM-scoped container reuse with serialized class access and cleanup, initially enabled for FakeIT and FakeSqlConfIT.
apache/seatunnel · #11626
Problem
Per-class engine-container startup and teardown repeatedly paid Docker and cluster-initialization costs during E2E testing.
Approach
Adds a JUnit root resource per container type/JVM, serializes class use, and restarts after startup or cleanup failures. Cleans active jobs, volumes, temporary configs and connector JAR additions between classes. Flink and Spark retain their existing lifecycle.
Impact and scope
- A warmed local two-class comparison dropped from 12m29s to 11m14s: 75 seconds, approximately 10 percent. This is a slice-specific measurement, not a full-CI speedup claim.
- Reuses engine startup while preserving isolation through cleanup and failure-triggered restarts.
- This is internal test infrastructure, not a production connector change; the broader reuse umbrella remains open.
Validation
- The PR reports eight representative E2E tests passing across Flink 1.18/1.20, Spark 3.3 and SeaTunnel Engine, plus focused lifecycle regressions.
- Observed one engine container reused across both classes with job, volume, config and JAR baselines restored. GitHub Build passed and the verified merge commit credits Goutam Adwant.