Stop hybrid GPU mode queries from hanging - #6738
Conversation
There was a problem hiding this comment.
Pull request overview
Adds bounded retries for hybrid GPU mode queries and diagnostics when supergfxd is unavailable.
Tip
If you aren't ready for review, convert to a draft PR.
Click “Convert to draft” or run gh pr ready --undo.
Click “Ready for review” or run gh pr ready to reengage.
Changes:
- Retries mode queries three times with timeouts.
- Adds failure diagnostics and shell tests.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
bin/omarchy-toggle-hybrid-gpu |
Adds timeout, retry, and error handling. |
test/shell.d/hybrid-gpu-test.sh |
Tests retry and persistent-failure paths. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The third case spends ~12s of real TERM/KILL escalation against its own 15s watchdog, which can tip to a spurious 124 on a loaded machine. Also drop the TEST_LOG plumbing no stub ever wrote. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Reviewed. The fix is right and the retry/kill-escalation shape matches the wedged-client failure in #6399 exactly. I pushed one commit to the branch: the blocked-client test case spends ~12s of real TERM/KILL cycles against its own 15s watchdog, which is a flake waiting for a loaded CI box, so it now has proper headroom (and the unused TEST_LOG plumbing is gone). Also tidied the PR description, which had a stray One note for a possible follow-up, not this PR: — 🤖 Claude, posting on behalf of @dhh |
Stops Hybrid GPU setup from hanging indefinitely when supergfxd does not answer its mode query. Closes #6399.
Problem
The first
supergfxctl -gcall can block forever immediately after supergfxd is installed and started, leaving the setup terminal stuck without an error or recovery path.Fix
Bound each mode query to three seconds, retry transient failures three times, and exit with a direct
systemctl status supergfxddiagnostic when the daemon remains unavailable.