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]
