Skip to content

[fix](regression) Fail Paimon JDBC seed on timeout#65272

Open
xylaaaaa wants to merge 1 commit into
apache:masterfrom
xylaaaaa:codex/paimon-jdbc-seed-timeout
Open

[fix](regression) Fail Paimon JDBC seed on timeout#65272
xylaaaaa wants to merge 1 commit into
apache:masterfrom
xylaaaaa:codex/paimon-jdbc-seed-timeout

Conversation

@xylaaaaa

@xylaaaaa xylaaaaa commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: test_paimon_jdbc_catalog seeds data through Spark before Doris reads the Paimon table. The previous shell helper used waitForOrKill, so a 300 second Spark seed timeout could continue the case without failing and the following Doris query saw an empty table.

The generic Spark ThriftServer JDBC helper is not suitable for this case because Paimon's JDBC catalog needs the PostgreSQL driver on the Spark driver classpath, and ADD JAR does not make DriverManager find it. This change keeps spark-sql for the seed step, passes arguments through ProcessBuilder without /bin/bash -c command concatenation, runs spark-sql under an explicit container-side timeout, and also fails the suite if the outer process times out or exits non-zero.

Spark now uses the container-network MinIO endpoint http://minio:9000 instead of the host-mapped MinIO port.

Release note

None

Check List (For Author)

  • Test: Manual test
    • git diff --check --cached
    • ./run-regression-test.sh --run -d external_table_p0/paimon -s test_paimon_jdbc_catalog -dryRun passed in the original workspace before moving the change to this worktree
    • Attempted the same dryRun in the new worktree; regression framework Maven package succeeded, but the script returned 1 at JAVA_UDF_SRC because this local environment has no /usr/lib/jvm entry for the script's JDK probe
    • Manual Spark CLI probe for Paimon JDBC catalog with --jars/--driver-class-path returned SHOW DATABASES successfully
    • Manual timeout probe confirmed container timeout exits with code 124
  • Behavior changed: Yes (the regression seed command now fails on timeout or non-zero exit instead of continuing; product behavior is unchanged)
  • Does this need documentation: No

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: test_paimon_jdbc_catalog seeds data through Spark before Doris reads the Paimon table. The previous shell helper used waitForOrKill, so a 300 second Spark seed timeout could continue the case without failing and the following Doris query saw an empty table. The generic Spark ThriftServer JDBC helper is not suitable for this case because Paimon's JDBC catalog needs the PostgreSQL driver on the Spark driver classpath, and ADD JAR does not make DriverManager find it. This change keeps spark-sql for the seed step, passes arguments through ProcessBuilder without /bin/bash -c command concatenation, runs spark-sql under an explicit container-side timeout, and also fails the suite if the outer process times out or exits non-zero. Spark now uses the container-network MinIO endpoint http://minio:9000 instead of the host-mapped MinIO port.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - git diff --check --cached
    - ./run-regression-test.sh --run -d external_table_p0/paimon -s test_paimon_jdbc_catalog -dryRun passed in the original workspace before moving the change to this worktree
    - Attempted the same dryRun in this new worktree; regression framework Maven package succeeded, but the script returned 1 at JAVA_UDF_SRC because this local environment has no /usr/lib/jvm entry for the script's JDK probe
    - Manual Spark CLI probe for Paimon JDBC catalog with --jars/--driver-class-path returned SHOW DATABASES successfully
    - Manual timeout probe confirmed container timeout exits with code 124
- Behavior changed: Yes (the regression seed command now fails on timeout or non-zero exit instead of continuing; product behavior is unchanged)
- Does this need documentation: No
Copilot AI review requested due to automatic review settings July 6, 2026 11:44
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@xylaaaaa

xylaaaaa commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

run buildall

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