The GitHub Actions job "Required Checks" on texera.git/fix/7049-serialize-minio-test-suites has succeeded. Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).
Head commit for run: 5228395e4558dbf7badbe9ba2ee48c8022726127 / Yicong-Huang <[email protected]> test(workflow-core): add @NonParallelTest to de-flake shared-MinIO suites `S3StorageClientSpec` intermittently failed 4 tests in the `build / amber` CI job (scope `WorkflowCore / Test / test`). The four suites mixing `S3StorageTestBase` (`S3StorageClientSpec`, `LargeBinaryManagerSpec`, `LargeBinaryInputStreamSpec`, `LargeBinaryOutputStreamSpec`) share a JVM-wide `S3StorageClient.s3Client` and a single `StorageConfig.s3Endpoint` pointed at one shared MinIO container. ScalaTest's parallel suite distributor runs them concurrently within a single in-process test task, so they contend for that one container and intermittently time out. The existing `Global / concurrentRestrictions += Tags.limit(Tags.Test, 1)` only bounds sbt task concurrency, not ScalaTest's in-JVM distributor. Introduce a reusable `@org.apache.texera.common.tags.NonParallelTest` marker (a Java `@TagAnnotation`, mirroring amber's `IntegrationTest`) and tag the four suites. `common/workflow-core/build.sbt` reflects over the tagged suites and gives each its own forked JVM via `Test / testGrouping`; sbt runs forked groups one at a time (the `Tags.ForkedTestGroup` limit), so tagged suites never overlap while every untagged suite runs in parallel in a single forked group. sbt discovers ScalaTest suites by subclass fingerprint (not by annotation), so the tag is detected reflectively through the test class loader. Forking is configured exactly like the FileService testcontainer suites (`Test / fork := true` + per-group `SubProcess`), which is the layout sbt-jacoco supports for forked coverage. An earlier attempt left `Test / fork := false` and forked only some groups; that partially-forked layout ran jacoco-instrumented classes in forked JVMs without the coverage runtime and aborted with `$jacocoInit` `ClassCastException: Long cannot be cast to [Z`. Also bound the concurrent-upload burst in the >1000-objects test from 16 to 4 threads so a single suite no longer floods the container. Closes #7049 Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Report URL: https://github.com/apache/texera/actions/runs/30492530318 With regards, GitHub Actions via GitBox
