Skip to content

test(integration): align Pirlo integration test behavior with Zonal buckets when rapid writes are enabled - #4913

Open
vipnydav wants to merge 47 commits into
masterfrom
pirlo-integration-tests
Open

test(integration): align Pirlo integration test behavior with Zonal buckets when rapid writes are enabled#4913
vipnydav wants to merge 47 commits into
masterfrom
pirlo-integration-tests

Conversation

@vipnydav

Copy link
Copy Markdown
Member

Description

When rapid writes are enabled for Pirlo (RCU) buckets (--experimental-enable-pirlo --enable-rapid-writes=true), open files and appends create unfinalized objects on GCS prior to file flush or close, following the exact behavior of Zonal (RAPID) buckets.

This PR updates GCSFuse integration tests to handle Pirlo buckets with rapid writes enabled identically to Zonal buckets:

  • Updated integration test suites to check Pirlo rapid-write runs alongside Zonal bucket checks for unfinalized object behaviors (such as object content visibility before flush/close, metadata attributes, storage class assertions, and permission error handling).
  • Renamed and standardized flush/close wait duration constants (WaitDurationAfterFlushRapid and WaitDurationAfterCloseRapid) to ensure tests wait appropriately for unfinalized object size and metadata propagation after file flushes and handle closes.
  • Updated integration test configs (test_config.yaml) to define Pirlo flag sets with run_on_gke: false and appropriate test selection (run: / skip:).
  • Standardized test error assertions across modified suites using require.NoError and assert.NoError.

Link to the issue in case of a bug fix.

b/537635447

Testing details

  1. Manual - NA
  2. Unit tests - NA
  3. Integration tests - Automated

Any backward incompatible change? If so, please explain.

No

@vipnydav
vipnydav requested review from a team and meet2mky as code owners July 22, 2026 09:54
@vipnydav
vipnydav requested a review from geertj July 22, 2026 09:54
@vipnydav vipnydav added execute-integration-tests Run only integration tests execute-integration-tests-on-zb To run E2E tests on zonal bucket. labels Jul 22, 2026
@vipnydav
vipnydav force-pushed the pirlo-integration-tests branch from c1cf6f5 to f539f41 Compare July 22, 2026 09:57

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request integrates support and test coverage for Pirlo buckets and rapid writes across various integration tests. It refactors several test files to use test suites, allowing tests to run under both base and rapid-write-enabled configurations. Additionally, it updates test_config.yaml to specify these new flag combinations and disables GKE runs for several tests. A review comment highlights a loss of test coverage in TestStaleHandleStreamingWritesEnabled due to the consolidation of Pirlo bucket flag sets, suggesting that both enable-rapid-writes=true and enable-rapid-writes=false scenarios should continue to be explicitly tested.

I am having trouble creating individual review comments. Click here to see my feedback.

tools/integration_tests/test_config.yaml (779)

high

The test configurations for Pirlo buckets in TestStaleHandleStreamingWritesEnabled have been consolidated into a single flag set that omits the --enable-rapid-writes flag. This means the test will only run with the default value (false), and the explicit test case for enable-rapid-writes=true is lost. To ensure both scenarios are tested, you should restore the two separate flag sets for enable-rapid-writes=true and enable-rapid-writes=false.

          - "--experimental-enable-pirlo,--enable-rapid-writes=true,--metadata-cache-ttl-secs=0,--write-block-size-mb=1,--write-max-blocks-per-file=1"
          - "--experimental-enable-pirlo,--enable-rapid-writes=false,--metadata-cache-ttl-secs=0,--write-block-size-mb=1,--write-max-blocks-per-file=1"

@vipnydav
vipnydav force-pushed the pirlo-integration-tests branch 12 times, most recently from c35b5ef to a006806 Compare July 28, 2026 15:53
@vipnydav
vipnydav force-pushed the pirlo-integration-tests branch 3 times, most recently from a1a9d74 to d753cf1 Compare August 5, 2026 09:48
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 83.83%. Comparing base (ab36809) to head (7a1959d).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
internal/storage/bucket_handle.go 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           master    #4913       +/-   ##
===========================================
+ Coverage        0   83.83%   +83.83%     
===========================================
  Files           0      174      +174     
  Lines           0    21380    +21380     
===========================================
+ Hits            0    17924    +17924     
- Misses          0     2776     +2776     
- Partials        0      680      +680     
Flag Coverage Δ
unittests 83.83% <75.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vipnydav
vipnydav force-pushed the pirlo-integration-tests branch from 8d11a35 to d9a7272 Compare August 7, 2026 04:55
@vipnydav
vipnydav force-pushed the pirlo-integration-tests branch from 96c1740 to f7261d4 Compare August 7, 2026 05:16
vipnydav added 18 commits August 7, 2026 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

execute-integration-tests Run only integration tests execute-integration-tests-on-zb To run E2E tests on zonal bucket.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants