Skip to content

Revert "worker: Graceful shutdown on SIGTERM"#10035

Merged
christyjacob4 merged 2 commits into1.7.xfrom
revert-9890-PLA-2762
Jun 21, 2025
Merged

Revert "worker: Graceful shutdown on SIGTERM"#10035
christyjacob4 merged 2 commits into1.7.xfrom
revert-9890-PLA-2762

Conversation

@stnguyen90
Copy link
Copy Markdown
Contributor

Reverts #9890 in an attempt to fix an issue where workers would timeout from the queue, restart, but no longer pick up jobs from the queue.

@linear
Copy link
Copy Markdown

linear bot commented Jun 21, 2025

Issue reopened: PLA-2762 Graceful exit for the workers

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jun 21, 2025

📝 Walkthrough

Walkthrough

This change set updates multiple shell scripts by removing the use of the exec command before invoking PHP processes. As a result, the shell scripts now launch PHP as a child process rather than replacing themselves with the PHP process. Additionally, in the PHP worker script, imports and logic related to Swoole signal handling and timer cleanup are removed, simplifying the worker start callback to only log when the worker starts. Finally, the composer.json file updates the "utopia-php/queue" dependency from a flexible "0.11.*" version to a fixed "0.11.0" version.

Possibly related PRs

  • Update queue #9936: Updates the "utopia-php/queue" dependency in composer.json, modifying the version constraint for the same package as this PR.
  • worker: Graceful shutdown on SIGTERM #9890: Introduces graceful shutdown signal handling and exec usage in shell scripts, which is directly related as this PR removes those same mechanisms.

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fd952f2 and 7238e11.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (34)
  • app/worker.php (1 hunks)
  • bin/doctor (1 hunks)
  • bin/install (1 hunks)
  • bin/maintenance (1 hunks)
  • bin/migrate (1 hunks)
  • bin/queue-count-failed (1 hunks)
  • bin/queue-count-processing (1 hunks)
  • bin/queue-count-success (1 hunks)
  • bin/queue-retry (1 hunks)
  • bin/realtime (1 hunks)
  • bin/schedule-executions (1 hunks)
  • bin/schedule-functions (1 hunks)
  • bin/schedule-messages (1 hunks)
  • bin/screenshot (1 hunks)
  • bin/sdks (1 hunks)
  • bin/specs (1 hunks)
  • bin/ssl (1 hunks)
  • bin/stats-resources (1 hunks)
  • bin/test (1 hunks)
  • bin/upgrade (1 hunks)
  • bin/vars (1 hunks)
  • bin/worker-audits (1 hunks)
  • bin/worker-builds (1 hunks)
  • bin/worker-certificates (1 hunks)
  • bin/worker-databases (1 hunks)
  • bin/worker-deletes (1 hunks)
  • bin/worker-functions (1 hunks)
  • bin/worker-mails (1 hunks)
  • bin/worker-messaging (1 hunks)
  • bin/worker-migrations (1 hunks)
  • bin/worker-stats-resources (1 hunks)
  • bin/worker-stats-usage (1 hunks)
  • bin/worker-webhooks (1 hunks)
  • composer.json (1 hunks)
🔇 Additional comments (34)
bin/vars (1)

3-3: LGTM! Process handling change supports revert objective.

Removing exec keeps the shell process alive as parent, allowing for different signal handling behavior which aligns with reverting the graceful shutdown functionality.

composer.json (1)

70-70: LGTM! Version pinning supports revert objective.

Pinning to exact version 0.11.0 ensures the problematic graceful shutdown behavior isn't reintroduced through patch updates. However, monitor this dependency for security patches that may require manual version updates.

bin/queue-count-failed (1)

3-3: LGTM! Consistent process handling change for queue tooling.

Removing exec aligns with the broader revert strategy and may help resolve queue-related worker issues by changing signal propagation behavior.

bin/queue-count-success (1)

3-3: LGTM! Maintains consistency in queue script modifications.

The process handling change is consistent with other queue-related scripts and supports the revert objective of addressing worker timeout issues.

bin/realtime (1)

3-3: LGTM! Realtime script follows consistent process handling pattern.

Removing exec maintains consistency with other bin scripts and ensures realtime processes can handle signals appropriately as part of the graceful shutdown revert.

bin/queue-count-processing (1)

3-3: LGTM - Process handling change addresses the stated issue.

Removing exec changes signal handling behavior. Previously, the shell process was replaced by PHP, and SIGTERM went directly to PHP. Now, the shell remains as parent and PHP runs as a child, which could affect how graceful shutdown signals are processed. This aligns with reverting the graceful shutdown changes to fix worker timeout and job pickup issues.

bin/install (1)

3-3: LGTM - Consistent with the revert strategy.

This change aligns with the systematic removal of exec across shell scripts as part of reverting the graceful shutdown changes. The modification ensures consistent process handling behavior across the codebase.

bin/upgrade (1)

3-3: LGTM - Part of the systematic revert.

The removal of exec is consistent with the overall strategy to revert graceful shutdown changes. This ensures uniform signal handling behavior across all shell scripts in the codebase.

bin/schedule-functions (1)

3-3: LGTM - Relevant to worker functionality.

This script handles function scheduling, which is related to worker operations. Removing exec changes signal handling behavior, which could help resolve the worker timeout and job processing issues mentioned in the PR objectives.

bin/test (1)

3-3: LGTM - Maintains consistency across shell scripts.

Although this test script is not directly related to worker queue processing, the consistent removal of exec across all shell scripts ensures uniform process handling behavior throughout the codebase.

bin/doctor (1)

3-3: Consider the implications of removing exec for signal handling.

Removing exec changes the process lifecycle: the shell now remains alive as the parent process instead of being replaced by PHP. This affects how signals (like SIGTERM/SIGINT) are handled - they'll first reach the shell process rather than going directly to PHP.

Given the PR context of reverting graceful shutdown changes, ensure this change properly addresses the worker timeout issues while maintaining expected signal handling behavior.

bin/schedule-messages (1)

3-3: Signal handling behavior changed for scheduling script.

Removing exec means the shell process stays alive as the parent of the PHP process. For a scheduling script like this, ensure that signal handling (especially for graceful shutdown) works correctly with the new process hierarchy.

The shell may not automatically forward signals to the PHP child process, which could affect scheduled job termination.

bin/maintenance (1)

3-3: Verify signal handling for maintenance operations.

The removal of exec affects how this maintenance script handles signals. Since maintenance operations may need to perform cleanup tasks when interrupted, ensure that the shell properly forwards termination signals to the PHP process.

Consider testing signal handling behavior to confirm maintenance operations can be gracefully interrupted.

bin/schedule-executions (1)

3-3: Critical: Verify signal handling for execution scheduling.

For an execution scheduling script, proper signal handling is crucial. The removal of exec means signals will first reach the shell process, which may not forward them to PHP automatically.

Ensure that scheduled executions can be properly interrupted and that any running executions are gracefully terminated when the scheduler receives shutdown signals.

bin/queue-retry (1)

3-3: ```shell
#!/bin/bash

Display the contents of the queue-retry script for inspection

if [ -f bin/queue-retry ]; then
echo "== bin/queue-retry =="
cat -n bin/queue-retry
else
echo "bin/queue-retry not found"
fi


</details>
<details>
<summary>bin/stats-resources (1)</summary>

`3-3`: **Process hierarchy change is consistent with revert objectives.**

Removing `exec` changes the process model from shell replacement to parent-child relationship, which affects signal handling behavior. This aligns with reverting the graceful shutdown implementation to address worker timeout issues.

</details>
<details>
<summary>bin/migrate (1)</summary>

`3-3`: **Consistent with revert pattern.**

The removal of `exec` is consistent with the other shell scripts in this revert, maintaining uniform process handling behavior across the codebase.

</details>
<details>
<summary>bin/screenshot (1)</summary>

`3-3`: **LGTM - Maintains consistency.**

The change follows the established pattern of removing `exec` commands across all shell scripts in this revert.

</details>
<details>
<summary>bin/sdks (1)</summary>

`3-3`: **LGTM - Pattern maintained.**

Consistent removal of `exec` command maintains uniform behavior across the shell script collection.

</details>
<details>
<summary>bin/specs (1)</summary>

`3-3`: **LGTM - Completes the consistent revert pattern.**

This final shell script change completes the uniform removal of `exec` commands across all affected scripts, successfully implementing the revert to address the worker timeout and job pickup issues.

</details>
<details>
<summary>bin/ssl (1)</summary>

`3-3`: **Consistent revert of exec removal for CLI script.**

The removal of `exec` is consistent with the broader revert to address the worker timeout issue. This change ensures the shell process remains active as the parent of the PHP process.

</details>
<details>
<summary>bin/worker-webhooks (1)</summary>

`3-3`: **Critical fix for worker signal handling.**

Removing `exec` changes the process hierarchy so the PHP worker runs as a child process. This addresses the SIGTERM graceful shutdown issue that was causing workers to timeout and fail to pick up jobs.

</details>
<details>
<summary>bin/worker-migrations (1)</summary>

`3-3`: **Consistent worker script update for signal handling fix.**

This change aligns with the revert pattern to fix SIGTERM handling issues. The migration worker now runs as a child process of the shell script.

</details>
<details>
<summary>bin/worker-stats-resources (1)</summary>

`3-3`: **Worker script updated to fix queue processing issues.**

The removal of `exec` ensures consistent signal handling behavior across all worker types, including stats-resources workers.

</details>
<details>
<summary>bin/worker-deletes (1)</summary>

`3-3`: **Final worker script updated in systematic revert.**

This completes the consistent removal of `exec` across worker scripts to resolve the SIGTERM handling issue that prevented workers from properly processing queue jobs.

</details>
<details>
<summary>app/worker.php (1)</summary>

`485-487`: **LGTM - Addresses the queue pickup issue by simplifying worker lifecycle.**

The simplification of the worker start callback removes the graceful shutdown complexity that was causing workers to timeout and fail to pick up jobs from the queue. This directly addresses the issue mentioned in the PR objectives.

</details>
<details>
<summary>bin/worker-databases (1)</summary>

`3-3`: **Note the process hierarchy change with signal handling implications.**

Removing `exec` means the shell script remains as the parent process, with PHP as a child. This changes how signals are handled - SIGTERM sent to the shell process may not be properly forwarded to the PHP worker process, which could affect clean termination.




This change is part of the graceful shutdown revert, but verify that process termination works as expected in your deployment environment.

</details>
<details>
<summary>bin/worker-certificates (1)</summary>

`3-3`: **Consistent with the coordinated revert across worker scripts.**

The removal of `exec` is consistent with the pattern across all worker scripts in this PR, changing the process hierarchy to address the queue pickup issues.

</details>
<details>
<summary>bin/worker-functions (1)</summary>

`3-3`: **Consistent process hierarchy change across worker scripts.**

Same pattern as other worker scripts - removing `exec` to change how PHP workers are spawned as part of the graceful shutdown revert.

</details>
<details>
<summary>bin/worker-stats-usage (1)</summary>

`3-3`: **Completes the coordinated exec removal across all worker scripts.**

This final worker script completes the consistent pattern of removing `exec` commands across the worker infrastructure, supporting the revert of graceful shutdown functionality to resolve the queue pickup issues.

</details>
<details>
<summary>bin/worker-builds (1)</summary>

`3-3`: **LGTM - Correctly reverts graceful shutdown behavior.**

Removing `exec` prevents the PHP worker from receiving SIGTERM directly, which aligns with the PR objective to revert graceful shutdown functionality that was causing workers to timeout and fail to pick up jobs.

</details>
<details>
<summary>bin/worker-mails (1)</summary>

`3-3`: **LGTM - Consistent with graceful shutdown reversion.**

The removal of `exec` is consistent with the other worker scripts and correctly prevents direct signal handling by the PHP worker process.

</details>
<details>
<summary>bin/worker-messaging (1)</summary>

`3-3`: **LGTM - Maintains consistency across worker scripts.**

The change aligns with the pattern applied to all worker scripts to revert graceful shutdown functionality.

</details>
<details>
<summary>bin/worker-audits (1)</summary>

`3-3`: **LGTM - Completes the graceful shutdown reversion.**

This change, combined with the removal of Swoole signal handling in `app/worker.php` mentioned in the AI summary, comprehensively reverts the graceful shutdown functionality to address the job processing issues.

</details>

</blockquote></details>

</details>
<!-- internal state start -->


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

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=appwrite/appwrite&utm_content=10035):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 21, 2025

Security Scan Results for PR

Docker Image Scan Results

Package Version Vulnerability Severity
binutils 2.42-r0 CVE-2025-0840 HIGH
libexpat 2.6.4-r0 CVE-2024-8176 HIGH
libxml2 2.12.7-r0 CVE-2024-56171 HIGH
libxml2 2.12.7-r0 CVE-2025-24928 HIGH
libxml2 2.12.7-r0 CVE-2025-27113 HIGH
libxml2 2.12.7-r0 CVE-2025-32414 HIGH
libxml2 2.12.7-r0 CVE-2025-32415 HIGH
pyc 3.12.9-r0 CVE-2024-12718 HIGH
pyc 3.12.9-r0 CVE-2025-4138 HIGH
pyc 3.12.9-r0 CVE-2025-4517 HIGH
python3 3.12.9-r0 CVE-2024-12718 HIGH
python3 3.12.9-r0 CVE-2025-4138 HIGH
python3 3.12.9-r0 CVE-2025-4517 HIGH
python3-pyc 3.12.9-r0 CVE-2024-12718 HIGH
python3-pyc 3.12.9-r0 CVE-2025-4138 HIGH
python3-pyc 3.12.9-r0 CVE-2025-4517 HIGH
python3-pycache-pyc0 3.12.9-r0 CVE-2024-12718 HIGH
python3-pycache-pyc0 3.12.9-r0 CVE-2025-4138 HIGH
python3-pycache-pyc0 3.12.9-r0 CVE-2025-4517 HIGH
sqlite-libs 3.45.3-r1 CVE-2025-29087 HIGH
xz 5.6.2-r0 CVE-2025-31115 HIGH
xz-libs 5.6.2-r0 CVE-2025-31115 HIGH
golang.org/x/crypto v0.31.0 CVE-2025-22869 HIGH

Source Code Scan Results

🎉 No vulnerabilities found!

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 21, 2025

✨ Benchmark results

  • Requests per second: 822
  • Requests with 200 status code: 148,070
  • P99 latency: 0.224316744

⚡ Benchmark Comparison

Metric This PR Latest version
RPS 822 1,028
200 148,070 185,013
P99 0.224316744 0.180419722

With the revert of PLA-2762, we need to pin the utopia-php/queue package to version 0.11.0 to avoid using the graceful shutdown feature that was introduced in version 0.11.1.
@stnguyen90 stnguyen90 requested a review from christyjacob4 June 21, 2025 04:00
@stnguyen90 stnguyen90 marked this pull request as ready for review June 21, 2025 04:01
@stnguyen90 stnguyen90 requested review from abnegate and eldadfux June 21, 2025 04:19
@christyjacob4 christyjacob4 merged commit 53ae307 into 1.7.x Jun 21, 2025
65 of 66 checks passed
@christyjacob4 christyjacob4 deleted the revert-9890-PLA-2762 branch June 21, 2025 08:47
abnegate added a commit that referenced this pull request Jun 23, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jun 23, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants