[fix](regression) Fail Paimon JDBC seed on timeout#65272
Open
xylaaaaa wants to merge 1 commit into
Open
Conversation
### 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
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Contributor
Author
|
run buildall |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)