gfphoenix78 opened a new pull request, #1797: URL: https://github.com/apache/cloudberry/pull/1797
pg_usleep() is a single select() that returns early on any signal. When a SIGALRM-based registered timeout fires (e.g. the periodic GP_PARALLEL_RETRIEVE_CURSOR_CHECK_TIMEOUT armed by DECLARE PARALLEL RETRIEVE CURSOR), it interrupts an in-progress fault sleep and the test loses the deterministic blocking window it relied on. This caused isolation2 test parallel_retrieve_cursor/status_check Test6.1 to flake: the gp_wait_parallel_retrieve_cursor() UDF returned 'f' within milliseconds instead of sleeping for the configured second, so the follow-up SIGINT had no in-flight statement to cancel. Loop pg_usleep() against a wallclock deadline so the requested duration is fully observed regardless of asynchronous signal arrivals. CHECK_FOR_INTERRUPTS still allows a genuine cancel or termination request to break out via ERROR. <!-- Thank you for your contribution to Apache Cloudberry (Incubating)! --> Fixes #ISSUE_Number ### What does this PR do? <!-- Brief overview of the changes, including any major features or fixes --> ### Type of Change - [ ] Bug fix (non-breaking change) - [ ] New feature (non-breaking change) - [ ] Breaking change (fix or feature with breaking changes) - [ ] Documentation update ### Breaking Changes <!-- Remove if not applicable. If yes, explain impact and migration path --> ### Test Plan <!-- How did you test these changes? --> - [ ] Unit tests added/updated - [ ] Integration tests added/updated - [ ] Passed `make installcheck` - [ ] Passed `make -C src/test installcheck-cbdb-parallel` ### Impact <!-- Remove sections that don't apply --> **Performance:** <!-- Any performance implications? --> **User-facing changes:** <!-- Any changes visible to users? --> **Dependencies:** <!-- New dependencies or version changes? --> ### Checklist - [ ] Followed [contribution guide](https://cloudberry.apache.org/contribute/code) - [ ] Added/updated documentation - [ ] Reviewed code for security implications - [ ] This PR contains AI-assisted code generation - [ ] Requested review from [cloudberry committers](https://github.com/orgs/apache/teams/cloudberry-committers) ### Additional Context <!-- Any other information that would help reviewers? Remove if none --> ### CI Skip Instructions <!-- To skip CI builds, add the appropriate CI skip identifier to your PR title. The identifier must: - Be in square brackets [] - Include the word "ci" and either "skip" or "no" - Only use for documentation-only changes or when absolutely necessary --> --- <!-- Join our community: - Mailing list: [[email protected]](https://lists.apache.org/[email protected]) (subscribe: [email protected]) - Discussions: https://github.com/apache/cloudberry/discussions --> -- 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]
