Skip to content

Capture server exception as an action exception#70

Open
kostyanf14 wants to merge 1 commit intomasterfrom
server-action
Open

Capture server exception as an action exception#70
kostyanf14 wants to merge 1 commit intomasterfrom
server-action

Conversation

@kostyanf14
Copy link
Contributor

This allows to reptry command when the server exited unexpectedly. For example, in case the WinRM connection is broken.

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>
@gemini-code-assist
Copy link

Summary of Changes

Hello @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

  • Exception Handling Refinement: The exception type caught within the handle_action_exceptions method has been broadened from RToolsHCKActionError to the more general RToolsHCKError.

🧠 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
  • lib/rtoolsHCK.rb
    • Modified the handle_action_exceptions method to rescue RToolsHCKError instead of RToolsHCKActionError.
Activity
  • No human activity (comments, reviews) has been recorded on this pull request yet.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_exceptions to catch the broader RToolsHCKError exception class instead of just RToolsHCKActionError

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

handle_exceptions do
yield
rescue RToolsHCKActionError => e
rescue RToolsHCKError => e
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
rescue RToolsHCKError => e
rescue RToolsHCKActionError => e

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's try to retry requests always and see how this will work in real system

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