Skip to content
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

[bump_20.10 backport ]Fix panic in agent #3032

Open
wants to merge 1 commit into
base: bump_20.10
Choose a base branch
from

Commits on Oct 27, 2021

  1. Fix panic in agent

    Previously, there was an issue where the agent could panic while
    attempting to determine if an error was temporary.
    
    Before the change, in `agent/exec/errors.go`, the function `IsTemporary`
    attempted to drill down to a root cause by iterating through the causes
    of an error by calling `errors.Cause`. If an error has no cause, then
    `errors.Cause` returns that same error.
    
    The issue is that somewhere in the depths of some code, it was posssible
    for the error to have an underlying type that was non-comparable; for
    example, maps and slices are uncomparable types. This would cause a
    panic, as the uncomparable type cannot be compared even to itself.
    
    However, one can see that `errors.Cause` has its own loop, and drills
    down to the root cause in its own way. There is no need for us to
    iterate here.
    
    Instead, we can just take a look at the error itself, and then take a
    look at its cause once. If neither is temporary, the error is not
    temporary, and we have nothing to worry about.
    
    Signed-off-by: Drew Erny <derny@mirantis.com>
    (cherry picked from commit 39a4233)
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    dperny authored and thaJeztah committed Oct 27, 2021
    Configuration menu
    Copy the full SHA
    2a87c2b View commit details
    Browse the repository at this point in the history