Skip to content

Stabilize Oracle JDBC backend test on CI#662

Open
vharseko wants to merge 1 commit into
OpenIdentityPlatform:masterfrom
vharseko:issues/oracle-test
Open

Stabilize Oracle JDBC backend test on CI#662
vharseko wants to merge 1 commit into
OpenIdentityPlatform:masterfrom
vharseko:issues/oracle-test

Conversation

@vharseko

Copy link
Copy Markdown
Member

Problem

The build-maven (26, ubuntu-latest) CI job failed at the Build with Maven step (opendj-server-legacy) with:

[ERROR] OracleTestCase>TestCase.setUp:43 » ContainerLaunch
        Container startup failed for image gvenzl/oracle-free:23.6-faststart
        ... Container exited with code 41
        ... Timed out waiting for log output matching '.*DATABASE IS READY TO USE!.*'
[ERROR] Failed to execute goal maven-failsafe-plugin:verify: There was a timeout in the fork

Root cause: when the Oracle container fails to initialize, withStartupAttempts(10) × withStartupTimeout(5m) retries it for up to ~50 minutes. In this run OracleTestCase alone ran ~51 min (05:56 → 06:47), tripping the failsafe fork timeout and breaking the whole build. The other JDBC backends (Postgres/MySQL/MSSQL) finished in well under a minute. The failure was infra flakiness — the same tests pass on the other matrix combinations.

Changes

  • OracleTestCase: withStartupAttempts(10)2 (worst case now ~10 min, safely under forkedProcessTimeoutInSeconds=900); bump image gvenzl/oracle-free:23.6-faststart (2025-03, non-slim) → 23.26.2-slim-faststart (newest, slim for a lighter pull). Comment / docker hint updated to match.
  • TestCase.setUp (shared JDBC backend parent): throw SkipException instead of propagating a container-startup failure. Container startup (image pull + DB init) is an infrastructure concern, not a regression in the backend under test — the DriverManager connection and the test methods still run and fail normally, so real regressions are still caught.

Effect

A flaky container start now yields Skipped instead of a 51-minute hang + Failures: 1 + fork timeout.

OracleTestCase could hang ~51 min and fail the whole opendj-server-legacy
build when the Oracle container failed to start: withStartupAttempts(10) x
withStartupTimeout(5m) retried a failing container for up to ~50 min, which
tripped the maven-failsafe fork timeout (BUILD FAILURE: 'There was a timeout
in the fork').

- OracleTestCase: reduce withStartupAttempts 10 -> 2 and bump the image from
  gvenzl/oracle-free:23.6-faststart (2025-03) to 23.26.2-slim-faststart
  (newest, slim variant for a lighter pull).
- TestCase.setUp: skip (SkipException) instead of failing when the database
  container cannot be started - container startup is an infrastructure
  concern, not a regression in the JDBC backend under test.
@vharseko vharseko added jdbc CI java Pull requests that update java code labels Jun 26, 2026
@vharseko vharseko requested a review from maximthomas June 26, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI java Pull requests that update java code jdbc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants