During sync, massive-sync conditions (dropped indexes, FKs, tables switched to...
Summary
This MR adds NFS-based caching support for CI pipelines, enabling sharing of HAF replay data and sync data across multiple CI builders. This eliminates the need for each builder to maintain its own local cache and allows tests to run on any available builder.
Changes
NFS Cache Infrastructure
- Added
cache-manager.shscript for managing NFS cache operations (get/put with locking) - Added NFS fallback paths in test job entrypoints for cross-builder data access
- Added tar archive extraction support for NFS cache in test services
- Use sudo to restore PostgreSQL permissions after NFS cache extraction
CI Pipeline Fixes
- Fixed pgdata ownership using explicit UID 105:109 instead of username-based resolution
- Added sudo for copying files to datadir in sync after_script
- Updated test jobs to check NFS cache when local cache is not available
- Increased wait timeouts (10m -> 55m) for block processing
HAF Submodule Updates
- Updated HAF to 465036e7 (fix pgdata ownership check)
- Updated HAF to 642330a5 (tablespace permissions fix)
- Updated HAF to e842bc87 (NFS-safe locking)
- Updated HAF to df653a09 (pgdata permissions fix)
- Multiple updates for NFS cache manager and BusyBox flock fixes
Patterns Applied
- Use explicit UIDs (105:109) instead of usernames for postgres ownership to avoid UID mismatch between host and container
- Use
--no-preserve=mode,ownershipwhen copying from NFS to avoid permission issues - Replace hardcoded hive-builder-9 with flexible tags
Test Results
Pipeline passing with all tests green.
Edited by Dan Notestein