Skip to content

[CI] Extract flink-backward stage from lake to avoid 60min timeout#3692

Open
Guosmilesmile wants to merge 4 commits into
apache:mainfrom
Guosmilesmile:ci_timeout
Open

[CI] Extract flink-backward stage from lake to avoid 60min timeout#3692
Guosmilesmile wants to merge 4 commits into
apache:mainfrom
Guosmilesmile:ci_timeout

Conversation

@Guosmilesmile

Copy link
Copy Markdown
Contributor

Description

Problem

The lake stage in CI (defined in ci-template.yaml) ran 6 sub-modules sequentially in a single Maven command:

Sub-module Duration
fluss-lake (parent) ~0 min
fluss-lake-paimon ~5 min
fluss-lake-iceberg ~5 min
fluss-lake-lance ~1 min
fluss-flink-1.19 ~24 min
fluss-flink-1.18 ~23 min
Total ~60 min

This consistently triggered the step-level timeout-minutes: 60 limit, causing the job to fail with:

Error: The action 'Test' has timed out after 60 minutes.

Solution

Split the lake stage into two independent jobs that run in parallel via the GitHub Actions matrix:

  • lake: fluss-lake, fluss-lake-paimon, fluss-lake-iceberg, fluss-lake-lance (~12 min)
  • flink-backward: fluss-flink-1.19, fluss-flink-1.18 (~47 min)

Since both jobs run in parallel (fail-fast: false), the wall-clock time drops from ~60 min to ~47 min, well within the timeout.

Changes

  • stage.sh: Added STAGE_FLINK_BACKWARD / MODULES_FLINK_BACKWARD, split Flink 1.18/1.19 out of MODULES_LAKE, updated get_test_modules_for_stage() with new case and updated core negation.
  • ci-template.yaml: Added flink-backward to the matrix.

@luoyuxia

Copy link
Copy Markdown
Contributor

similar to #3273.

@Guosmilesmile

Guosmilesmile commented Jul 19, 2026

Copy link
Copy Markdown
Contributor Author

similar to #3273.

@luoyuxia Thanks for pointing out. I made some change based on the suggestions from your issue.

Reduce the ITCase coverage on the backward-compatibility Flink versions (1.18 and 1.19) to a 6-test smoke subset that covers the essential read/write paths. The full test suite continues to run on the representative version (fluss-flink-common, aligned to Flink 1.20 and 2.2).

Kept (smoke) vs. skipped

ITCase 1.18 1.19 Rationale
TableSourceITCase Core streaming read
TableSinkITCase Core streaming write
CatalogITCase DDL operations (high API churn area)
ChangelogVirtualTableITCase Changelog read path
BinlogVirtualTableITCase Binlog read path
TableSourceBatchITCase Batch read path
TableSourceFailOverITCase Failover — tested on repr. version
UndoRecoveryITCase Undo recovery — tested on repr. version
ComplexTypeITCase Complex types — tested on repr. version
ProcedureITCase Stored procedures — tested on repr. version
MetricsITCase Metrics — tested on repr. version
AuthorizationITCase Authorization — tested on repr. version
TieringITCase Tiered storage — tested on repr. version
OrphanFilesCleanITCase Orphan files — tested on repr. version

@litiliu

litiliu commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

@Guosmilesmile This PR is very useful, but seems the flink/spark3/spark3-scala213 still last about nearly 1 hour, i guess we need to optimize them too.

@Guosmilesmile

Copy link
Copy Markdown
Contributor Author

Flink Common run in 1.20 version, we also run 1.20 in full test-coverage. So reduce the ITCase coverage for 1.20 align with 1.18 and 1.19 reduce cost time for flink module.

@Guosmilesmile

Copy link
Copy Markdown
Contributor Author

Regarding the Spark part, I would prefer to address it in the next PR. Let's focus on handling the Flink part for now.

@litiliu

litiliu commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Regarding the Spark part, I would prefer to address it in the next PR. Let's focus on handling the Flink part for now.

Thanks, that makes sense. If you don't have the bandwidth, I'd be happy to take it and open a spark related PR. Would that be okay with you?

@Guosmilesmile

Copy link
Copy Markdown
Contributor Author

Thanks, that makes sense. If you don't have the bandwidth, I'd be happy to take it and open a spark related PR. Would that be okay with you?

Sure, go ahead. That'd be great, thanks!

@luoyuxia
luoyuxia requested a review from loserwang1024 July 20, 2026 09:43
@luoyuxia

Copy link
Copy Markdown
Contributor

cc @loserwang1024

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.

3 participants