-
Notifications
You must be signed in to change notification settings - Fork 101
dhcp_proxy: set timeout_sender
only if required
#1263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's GuideThis PR introduces an inactivity_timeout in NetavarkProxyService and wraps the reset_inactivity_timeout call in a zero-check to prevent queuing timer resets when the timeout is disabled. Sequence diagram for conditional timer reset in get_leasesequenceDiagram
participant Client
participant NPS as NetavarkProxyService
participant TC as TimerChannel (activity_timeout_tx)
Client->>+NPS: get_lease(request)
NPS->>NPS: Read self.inactivity_timeout
alt inactivity_timeout is not zero
NPS->>NPS: self.reset_inactivity_timeout()
NPS->>TC: Send reset signal
end
NPS-->>-Client: NetavarkLease / Status
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @flouthoc - I've reviewed your changes and they look great!
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
src/commands/dhcp_proxy.rs
Outdated
@@ -55,6 +55,8 @@ struct NetavarkProxyService<W: Write + Clear> { | |||
cache: Arc<Mutex<LeaseCache<W>>>, | |||
// the timeout for the dora operation | |||
dora_timeout: u32, | |||
// inactivity_timeout duration in seconds | |||
inactivity_timeout: Duration, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be cleaner to wrap timeout_sender in an Option<> and then the option is set to None when the timeout is zero?
Looking at the code there should not be a reason to create the channel at all when the timeout is zero I think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be cleaner to wrap timeout_sender in an Option<> and then the option is set to None when the timeout is zero?
Yes we can do this.
Looking at the code there should not be a reason to create the channel at all when the timeout is zero I think.
Sounds like a good idea, let me see if we can do this.
timeout_sender
only if required
@Luap99 WDYT about this patch, could you give it a quick try. |
When `--activity-timeout 0` there should be no reason to push messages on `activity_timeout_tx` as `activity_timeout_rx` is not receving any messages as a result all the messages pushed are just stuck in queue, resulting in `no available capacity` when queue becomes full. Closes: containers#1262 Signed-off-by: flouthoc <[email protected]>
LGTM |
This should also close #1024 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: flouthoc, Luap99, sourcery-ai[bot] The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
When
--activity-timeout 0
there should be no reason to push messages onactivity_timeout_tx
asactivity_timeout_rx
is not receving any messages as a result all the messages pushed are just stuck in queue, resulting inno available capacity
when queue becomes full.Closes: #1262
Summary by Sourcery
Disable resetting the inactivity timer when it’s configured as zero to avoid filling the activity timeout channel and causing queue overflows.
Bug Fixes:
Enhancements: