Repository navigation
fix: don't reconnect after a command longer than the ack timeout - #45
Conversation
The daemon handles each message inline, so while a command runs its serve loop reads nothing and the controller's heartbeat acks sit unread in the socket. When the command finished, the next ack_check saw no ack for longer than ack_timeout (30s by default) and reconnected, so the daemon vanished from the registry for its 5s backoff right after answering. This broke the E2E run on #44: `microdnf install -y curl` on rocky took the full 60s timeout, daemon-rocky-1 reconnected the same instant, and the following tests failed with "Daemon daemon-rocky-1 not found". Restart the ack deadline after each inline message. The buffered acks are read on the next iterations; a controller that really stopped acking is still caught one ack_timeout later. Introduced in #40. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: kerthcet <kerthcet@gmail.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
|
/kind bug |
InftyAI-Agent
left a comment
There was a problem hiding this comment.
Approved: PR has both lgtm and approved labels
The daemon handles each message inline, so while a command runs its serve loop reads nothing and the controller's heartbeat acks sit unread in the socket. When the command finished, the next ack_check saw no ack for longer than ack_timeout (30s by default) and reconnected, so the daemon vanished from the registry for its 5s backoff right after answering.
This broke the E2E run on #44:
microdnf install -y curlon rocky took the full 60s timeout, daemon-rocky-1 reconnected the same instant, and the following tests failed with "Daemon daemon-rocky-1 not found".Restart the ack deadline after each inline message. The buffered acks are read on the next iterations; a controller that really stopped acking is still caught one ack_timeout later. Introduced in #40.
What this PR does / why we need it
Which issue(s) this PR fixes
Fixes #
Special notes for your reviewer
Does this PR introduce a user-facing change?