Skip to content

ci: Add ORA_TZFILE workaround to ruby_head workflow#291

Merged
yahonda merged 1 commit into
rsim:masterfrom
yahonda:ora-tzfile-workaround-ruby-head
May 12, 2026
Merged

ci: Add ORA_TZFILE workaround to ruby_head workflow#291
yahonda merged 1 commit into
rsim:masterfrom
yahonda:ora-tzfile-workaround-ruby-head

Conversation

@yahonda
Copy link
Copy Markdown
Collaborator

@yahonda yahonda commented May 12, 2026

Summary

The scheduled ruby_head workflow has been failing since 2026-05-09 with OCIError: ORA-01805: possible error in date/time operation raised from ocidatetime.c:119 for every DATE/TIMESTAMP fetch:

https://github.com/rsim/ruby-plsql/actions/runs/25586756343

Cause: gvenzl/oracle-free:latest now ships Oracle Free 23ai with a newer timezone-data version (timezlrg_*.dat under the server $ORACLE_HOME/oracore/zoneinfo) than the "latest" instantclient-basic-linuxx64.zip download embeds. ruby-oci8 raises ORA-01805 whenever the client tries to materialize a date/time value fetched from a session opened against the newer server.

Copy the server's timezlrg_*.dat onto the Instant Client and point ORA_TZFILE at it, immediately after the Create database user step. The lookup is dynamic so a future bump of the gvenzl image (which ships whatever timezone version is current) continues to work without further edits.

Mirrors rsim/oracle-enhanced#2764.

Note: test.yml, test_gemfiles.yml, jruby_head.yml, and truffleruby.yml use the same gvenzl/oracle-free:latest image and will hit the same failure on their next run. Scoping this PR narrowly to the workflow that has been failing on schedule; happy to expand if preferred.

Test plan

  • Watch this PR's ruby_head workflow run (manual re-dispatch may be needed since it's a scheduled workflow) and confirm the previously-failing procedure_spec.rb/connection_spec.rb/variable_spec.rb/view_spec.rb/table_spec.rb/sql_statements_spec.rb examples pass.

@yahonda yahonda force-pushed the ora-tzfile-workaround-ruby-head branch from 5bf9488 to bbed47d Compare May 12, 2026 13:42
yahonda added a commit that referenced this pull request May 12, 2026
#291 added the ORA-01805 workaround to `ruby_head.yml`. The same root
cause -- `gvenzl/oracle-free:latest` shipping a newer timezone-data
version than the "latest" Instant Client embeds -- affects every other
workflow that combines that image with ruby-oci8:

- `truffleruby.yml`: failing on schedule since 2026-05-09 with
  `ORA-01805` from `ocidatetime.c:119 in oci8lib_truffleruby.so`
  (https://github.com/rsim/ruby-plsql/actions/runs/25710673905).
- `test.yml`: not yet run against the updated image (latest run was
  2026-05-08, image upgrade landed on 05-09); will fail on the MRI
  matrix slots on the next push/PR.
- `test_gemfiles.yml`: same situation as test.yml.

Apply the same dynamic copy-and-set-ORA_TZFILE step immediately after
`Create database user`. `jruby_head.yml` is excluded because it uses
the JDBC driver and is not affected (confirmed still green on schedule).
The scheduled ruby_head workflow has been failing since 2026-05-09 with
`OCIError: ORA-01805: possible error in date/time operation` raised from
`ocidatetime.c:119` for every DATE/TIMESTAMP fetch:

    https://github.com/rsim/ruby-plsql/actions/runs/25586756343

Cause: `gvenzl/oracle-free:latest` ships Oracle Free 23ai with a newer
timezone-data version than the `instantclient-basic-linuxx64.zip` "latest"
download embeds, and ruby-oci8 raises ORA-01805 whenever the client tries
to materialize a date/time fetched from a session opened against the newer
server.

Copy the server's `timezlrg_*.dat` onto the Instant Client and point
ORA_TZFILE at it, immediately after the `Create database user` step.
The lookup is dynamic so a future bump of the gvenzl image (which ships
whatever timezone version is current) continues to work without further
edits.

Mirrors rsim/oracle-enhanced#2764.
@yahonda yahonda force-pushed the ora-tzfile-workaround-ruby-head branch from bbed47d to 642e938 Compare May 12, 2026 14:07
@yahonda yahonda merged commit 8802375 into rsim:master May 12, 2026
20 checks passed
@yahonda yahonda deleted the ora-tzfile-workaround-ruby-head branch May 12, 2026 14:29
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.

1 participant