From 96efd1fc117add5a4efbc4d4feb94077826acd0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paolo=20Chil=C3=A0?= Date: Thu, 22 Feb 2024 13:08:39 +0100 Subject: [PATCH] Increase waiting time and timeout for removal of agent files (#4310) * increase waiting time and timeout for removal of agent files (cherry picked from commit 2eecafb1ad273623257d3b51604091bce5d1f169) --- ...out-for-file-removal-during-uninstall.yaml | 32 +++++++++++++++++++ internal/pkg/agent/install/uninstall.go | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 changelog/fragments/1708594284-Increase-timeout-for-file-removal-during-uninstall.yaml diff --git a/changelog/fragments/1708594284-Increase-timeout-for-file-removal-during-uninstall.yaml b/changelog/fragments/1708594284-Increase-timeout-for-file-removal-during-uninstall.yaml new file mode 100644 index 00000000000..84f3067c8ce --- /dev/null +++ b/changelog/fragments/1708594284-Increase-timeout-for-file-removal-during-uninstall.yaml @@ -0,0 +1,32 @@ +# Kind can be one of: +# - breaking-change: a change to previously-documented behavior +# - deprecation: functionality that is being removed in a later release +# - bug-fix: fixes a problem in a previous version +# - enhancement: extends functionality but does not break or fix existing behavior +# - feature: new functionality +# - known-issue: problems that we are aware of in a given version +# - security: impacts on the security of a product or a user’s deployment. +# - upgrade: important information for someone upgrading from a prior version +# - other: does not fit into any of the other categories +kind: bug-fix + +# Change summary; a 80ish characters long description of the change. +summary: Increase timeout for file removal during uninstall + +# Long description; in case the summary is not enough to describe the change +# this field accommodate a description without length limits. +# NOTE: This field will be rendered only for breaking-change and known-issue kinds at the moment. +#description: + +# Affected component; a word indicating the component this changeset affects. +component: elastic-agent + +# PR URL; optional; the PR number that added the changeset. +# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added. +# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number. +# Please provide it if you are adding a fragment for a different PR. +#pr: https://github.com/owner/repo/1234 + +# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of). +# If not present is automatically filled by the tooling with the issue linked to the PR number. +#issue: https://github.com/owner/repo/1234 diff --git a/internal/pkg/agent/install/uninstall.go b/internal/pkg/agent/install/uninstall.go index 68b626d798b..3e1fe187818 100644 --- a/internal/pkg/agent/install/uninstall.go +++ b/internal/pkg/agent/install/uninstall.go @@ -139,7 +139,7 @@ func Uninstall(cfgFile, topPath, uninstallToken string, log *logp.Logger, pt *pr // to an ERROR_SHARING_VIOLATION. RemovePath will retry up to 2 // seconds if it keeps getting that error. func RemovePath(path string) error { - const arbitraryTimeout = 5 * time.Second + const arbitraryTimeout = 30 * time.Second start := time.Now() var lastErr error for time.Since(start) <= arbitraryTimeout { @@ -154,7 +154,7 @@ func RemovePath(path string) error { _ = removeBlockingExe(lastErr) } - time.Sleep(50 * time.Millisecond) + time.Sleep(500 * time.Millisecond) } return fmt.Errorf("timed out while removing %q. Last error: %w", path, lastErr)