HyukjinKwon opened a new pull request, #56645:
URL: https://github.com/apache/spark/pull/56645

   ### What changes were proposed in this pull request?
   
   This PR makes the per-database connection timeout in the JDBC docker 
integration
   tests configurable per database, and raises it to 15 minutes for the Oracle
   suite.
   
   - `DatabaseOnDocker` gains an optional `connectionTimeout: Option[String]` 
hook
     (default `None`).
   - `DockerJDBCIntegrationSuite.connectionTimeout` now prefers the database's
     override, falling back to the existing 
`spark.test.docker.connectionTimeout`
     system property (default `10min`). It is changed from a `val` to a `lazy 
val`
     so that the abstract `db` is initialized before it is read.
   - `OracleDatabaseOnDocker` overrides `connectionTimeout` to `15min`.
   
   ### Why are the changes needed?
   
   `org.apache.spark.sql.jdbc.v2.OracleIntegrationSuite` intermittently aborts 
in
   `beforeAll` with:
   
   ```
   OracleIntegrationSuite *** ABORTED ***
     The code passed to eventually never returned normally. Attempted 597 times
     over 10.0126086934 minutes. Last failure message:
     ORA-12541: Cannot connect. No listener at host ... port 327xx.
   ```
   
   The Oracle Free container is the heaviest of all the JDBC integration test
   databases and intermittently takes longer than the default 10-minute 
connection
   timeout to fully bootstrap its listener / open the pluggable database. When 
that
   happens the suite aborts, even though every other DB suite
   (MySQL/Postgres/DB2/MsSQL/MariaDB) in the same run passes. This has shown up 
on
   the scheduled Java 25 master build and on branch-4.2 docker integration runs,
   while the same job passed on the immediately preceding daily runs - i.e. it 
is
   startup-time flakiness, not a code regression.
   
   Giving the Oracle suite more headroom lets the slow container finish coming 
up.
   This mirrors SPARK-49803, which previously raised the global default to 10
   minutes for the same class of flakiness.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. Test-only change.
   
   ### How was this patch tested?
   
   **Validated on fork CI (GREEN):** 
https://github.com/HyukjinKwon/spark/actions/runs/27923565705
   
   Ran the docker integration tests on a fork; the `OracleIntegrationSuite` no
   longer aborts. Validated on fork run: 
https://github.com/HyukjinKwon/spark/actions/runs/27923565705
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude (Anthropic) opus 4.8
   
   This pull request and its description were written by Isaac.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to