xiangfu0 opened a new pull request, #19192:
URL: https://github.com/apache/pinot/pull/19192

   ## Summary
   
   - consolidate the four pauseless controller-failure integration classes into 
one shared-cluster class
   - publish the Kafka dataset and build the non-pauseless reference table 
once, while keeping one unique table/schema and one independently reported test 
per scenario
   - preserve the baseline, commit-end metadata, ideal-state update, and 
new-segment metadata assertions and recovery flow
   - make repeated fault injection thread-safe and force segment-level 
validation for every explicit recovery
   - keep the existing two integration-test jobs and alphabetical Set 2 
selection unchanged
   
   ## Why
   
   Each former concrete class started and stopped ZooKeeper, Kafka, controller, 
broker, and server, then republished the same 115,545 rows and rebuilt the same 
reference table.
   
   In successful workflow run 
[31227570484](https://github.com/apache/pinot/actions/runs/31227570484), the 
four classes took 476.1 seconds combined:
   
   - baseline: 109.8s
   - commit-end metadata failure: 123.0s
   - ideal-state update failure: 122.8s
   - new-segment metadata failure: 120.5s
   
   The consolidated local class completed all four tests in 103.6 seconds. This 
is a directional comparison across different runners; this PR's Set 2 CI result 
will provide the apples-to-apples workflow measurement.
   
   ## Correctness details
   
   - Fault scenarios are serialized because controller failure injection is 
global.
   - Every scenario disables its fault in cleanup, drops the table, waits for 
ExternalView and server table-manager removal, and deletes its schema.
   - Cleanup failures are suppressed onto the original test failure instead of 
masking it.
   - The decoder schema file is pinned for the shared fixture lifetime so later 
Helix transitions cannot observe a deleted class temp file.
   - Repeated recovery explicitly requests segment-level validation. A shared 
validator otherwise rate-limits later deep-store upload passes through its 
last-run timestamp.
   - The topology-changing `TableRebalancePauselessIntegrationTest` remains 
dedicated and passes unchanged.
   
   ## Validation
   
   - `./mvnw -pl pinot-integration-tests -am 
-Dtest=PauselessRealtimeIngestionIntegrationTest 
-Dsurefire.failIfNoSpecifiedTests=false test`
     - 4 tests, 0 failures/errors/skips, 103.6s class time
   - `./mvnw -pl pinot-integration-tests -am 
-Dtest=TableRebalancePauselessIntegrationTest 
-Dsurefire.failIfNoSpecifiedTests=false test`
     - 2 tests, 0 failures/errors/skips, 131.4s class time
   - `./mvnw spotless:apply -pl pinot-controller,pinot-integration-tests`
   - `./mvnw license:format -pl pinot-controller,pinot-integration-tests`
   - `./mvnw checkstyle:check -pl pinot-controller,pinot-integration-tests`
   - `./mvnw license:check -pl pinot-controller,pinot-integration-tests`
   


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