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]