Mulily0513 opened a new pull request, #130:
URL: https://github.com/apache/cloudberry-pxf/pull/130

   ## Summary
   
   Rocky 9 CI has been red on every main-branch push since #78 added Rocky 9 
support on 2026-03-26. The failure signature is 13-15 Parquet regression diffs 
per test group — `features`, `gpdb`, `gpdb_fdw`, `hcfs` all fail identically; 
Ubuntu on the same commit passes.
   
   Root cause: `ParquetTypeConverter.java` encodes/decodes INT96 timestamps 
using `ZoneId.systemDefault()`:
   
   ```java
   // bytesToTimestamp() — read path
   Instant instant = Instant.ofEpochMilli(unixTimeMs); // time read from 
Parquet is in UTC
   String timestamp = 
instant.atZone(ZoneId.systemDefault()).format(GreenplumDateTime.DATETIME_FORMATTER);
   
   // getBinaryFromTimestamp() — write path
   LocalDateTime date = LocalDateTime.parse(timestampString, 
GreenplumDateTime.DATETIME_FORMATTER);
   ZonedDateTime zdt = ZonedDateTime.of(date, ZoneId.systemDefault());
   ```
   
   The JVM's default TZ therefore affects the UTC epoch stored in / decoded 
from Parquet INT96 timestamps. The Ubuntu CI container inherits `Europe/London` 
(BST = UTC+1 in summer) while the Rocky 9 CI container defaults to UTC. Same 
Parquet input, two different timestamp strings; the `.ans` expected outputs 
(`features/parquet/primitive_types`, `write_list/timestamp_list`, `pushdown`, 
`timestamp_list`) are calibrated against Ubuntu output, so Rocky 9 diffs.
   
   ## Fix
   
   Pin both distros' container TZ to `Etc/GMT-1` (UTC+1, fixed offset):
   
   - makes JVM default TZ identical across distros
   - matches the `PGOPTIONS timezone='GMT-1'` set by `run_tests.sh` (line 54), 
keeping the JVM/PG timestamp path internally consistent
   - preserves the existing `.ans` values (Ubuntu summer runs already produce 
UTC+1 output), so no regeneration needed
   - fixed offset avoids DST drift (Ubuntu's `Europe/London` would flip to GMT 
in winter)
   
   ## Scope
   
   Two lines each in 
`ci/docker/pxf-cbdb-dev/{rocky9,ubuntu}/docker-compose.yml`. CI-only files — 
nothing ships to end users, no runtime binary change. The underlying 
`systemDefault()` behavior in `ParquetTypeConverter` is unchanged; addressing 
that (for cross-TZ deployments) is a separate concern that a shipped fix would 
need to grapple with.
   
   ## Test plan
   
   - [ ] Verify Rocky 9 test groups (`features`, `gpdb`, `gpdb_fdw`, `hcfs`) 
turn green
   - [ ] Verify Ubuntu test groups stay green (no `.ans` disturbance because 
Ubuntu summer is already at UTC+1)
   - [ ] Confirm the `Test PXF Rocky9 - hcfs` job no longer reports 13 Parquet 
failures
   
   Related: #17 (long-running CI repair effort), #86 (`pxf_regress is broken`). 
Also likely unblocks #123.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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