Capture server exception as an action exception#70
Conversation
This allows to reptry command when the server exited unexpectedly. For example, in case the WinRM connection is broken. Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Summary of ChangesHello @kostyanf14, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the system's ability to recover from unexpected server issues by modifying the exception handling mechanism. By catching a more general exception type, the system can now better manage scenarios like abrupt server exits or broken connections, enabling more resilient command retries. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
The change to catch the more general RToolsHCKError in handle_action_exceptions is a good improvement. It ensures that all custom exceptions derived from RToolsHCKError are handled consistently, allowing for more robust retry mechanisms as described in the pull request. This aligns well with the goal of retrying commands when server issues, such as WinRM connection breaks, occur.
There was a problem hiding this comment.
Pull request overview
This pull request modifies exception handling in the handle_action_exceptions method to broaden the scope of caught exceptions from RToolsHCKActionError to its parent class RToolsHCKError. This change allows the method to also catch RToolsHCKConnectionError exceptions (including ServerError and EtherError), which enables retry behavior when WinRM connections or server processes fail unexpectedly.
Changes:
- Modified the rescue clause in
handle_action_exceptionsto catch the broaderRToolsHCKErrorexception class instead of justRToolsHCKActionError
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| handle_exceptions do | ||
| yield | ||
| rescue RToolsHCKActionError => e | ||
| rescue RToolsHCKError => e |
There was a problem hiding this comment.
Broadening the exception type from RToolsHCKActionError to RToolsHCKError will now also catch RToolsHCKConnectionError exceptions (including ServerError and EtherError). While this aligns with the PR's goal to handle server exceptions, it changes the behavior for all methods using handle_action_exceptions. Consider whether all connection errors should be uniformly treated as retriable action errors. If some connection errors require different handling, you might need a more nuanced approach that distinguishes between different types of connection failures.
| rescue RToolsHCKError => e | |
| rescue RToolsHCKActionError => e |
There was a problem hiding this comment.
Let's try to retry requests always and see how this will work in real system
This allows to reptry command when the server exited unexpectedly. For example, in case the WinRM connection is broken.