Skip to content

ci: Oracle datasource broken across all engines — Invalid URL, missing DBMS_LOCK, constraint cleanup #2663

Description

@bpamiri

Describe the bug

The Oracle database test path in the compat-matrix is broken at multiple layers, affecting every engine that exercises it (Lucee 6/7, Adobe 2023/2025, BoxLang). The failures fall into three sub-clusters:

  1. Datasource registration failure (Lucee 6) — Oracle test JSON for Lucee 6 contains java.sql.SQLException: Invalid Oracle URL specified and reports 0 specs run. The connection never establishes.
  2. DBMS_LOCK package not installed (any engine)wheels.tests.specs.model.lockingSpec errors with Oracle advisory locks require DBMS_LOCK package setup. (4 occurrences).
  3. Test cleanup leaves constraints behindORA-02264: name already used by an existing constraint and ORA-01003: no statement parsed (~6 occurrences in migratorSpec and bulkOperationsSpec). Same root cause class as the Lucee/MySQL Duplicate foreign key constraint name issue tracked separately.

Evidence

Compat-matrix run #25837380625 (2026-05-13). Oracle errors on BoxLang totaled 134 — the highest count per DB. On Lucee 6 the count was 0 because tests didn't run (datasource failure).

Expected behavior

Oracle tests should at minimum run to completion on every engine (currently fails on Lucee 6 before tests start). The advisory-lock and constraint-cleanup failures should be deterministic and either pass or skip gracefully.

Likely fix areas

This is CI-infrastructure work, not framework code. Three independent threads:

  1. Lucee 6 + Oracle JDBC URL — Lucee 6's CFConfig.json for Oracle in tools/docker/ — verify the JDBC URL format. The matrix compose.yml shows the Oracle service definition; the per-engine Oracle datasource config is what needs the fix. The Adobe + BoxLang Oracle setups work, so the diff between their configs is the lead.
  2. DBMS_LOCK package — needs to be granted to wheelstestdb in the Oracle container's initialization script. Probably an add-grant in tools/docker/oracle/init.sql or equivalent.
  3. Constraint cleanup — same shape as the FK collision issue (separate Tier-3 ticket). Migrator test setup needs to drop constraints before re-creating; Oracle's ORA-02264 is the same class of bug as MySQL's Duplicate foreign key.

Additional context

  • Part of the Core test suite has high failure/error rate on BoxLang (35 failures, 125 errors, 3526 passing) #2649 decomposition (Tier 3 — DB environment, not framework).
  • This has been broken on every scheduled matrix run for at least a month (verified back to the 2026-04-12 run).
  • Recommend the three sub-clusters be addressed in separate PRs since they're independent: the JDBC URL fix is minutes; the DBMS_LOCK grant requires container rebuild; the constraint cleanup is shared with the MySQL/H2/SQL Server FK issue.
  • CLAUDE.md's SOFT_FAIL_DBS guidance is relevant here: while these are being fixed, adding oracle to SOFT_FAIL_DBS in .github/workflows/compat-matrix.yml (currently empty) would let Oracle failures log as warnings rather than hard-fail each engine job.

Related: #2649

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions