ci: Add ORA_TZFILE workaround to ruby_head workflow#291
Merged
Conversation
2 tasks
5bf9488 to
bbed47d
Compare
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.
bbed47d to
642e938
Compare
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.
Summary
The scheduled
ruby_headworkflow has been failing since 2026-05-09 withOCIError: ORA-01805: possible error in date/time operationraised fromocidatetime.c:119for every DATE/TIMESTAMP fetch:https://github.com/rsim/ruby-plsql/actions/runs/25586756343
Cause:
gvenzl/oracle-free:latestnow ships Oracle Free 23ai with a newer timezone-data version (timezlrg_*.datunder the server$ORACLE_HOME/oracore/zoneinfo) than the "latest"instantclient-basic-linuxx64.zipdownload 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_*.datonto the Instant Client and pointORA_TZFILEat it, immediately after theCreate database userstep. 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, andtruffleruby.ymluse the samegvenzl/oracle-free:latestimage 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
ruby_headworkflow run (manual re-dispatch may be needed since it's a scheduled workflow) and confirm the previously-failingprocedure_spec.rb/connection_spec.rb/variable_spec.rb/view_spec.rb/table_spec.rb/sql_statements_spec.rbexamples pass.