diff --git a/changelog/11970.txt b/changelog/11970.txt new file mode 100644 index 000000000..60ea438b0 --- /dev/null +++ b/changelog/11970.txt @@ -0,0 +1,3 @@ +```release-note:bug +core: Fixed double counting of http requests after operator stepdown +``` \ No newline at end of file diff --git a/vault/core.go b/vault/core.go index 55dbbfc6b..3b6e461fd 100644 --- a/vault/core.go +++ b/vault/core.go @@ -2183,6 +2183,12 @@ func (c *Core) preSeal() error { if err := c.unloadMounts(context.Background()); err != nil { result = multierror.Append(result, fmt.Errorf("error unloading mounts: %w", err)) } + + // Zeros out the requests counter to avoid sending all requests for the month on stepdown + // when this runs on the active node. Unseal does the complementary operation of loading + // the counter from storage, so this operation should be a safe one. + atomic.StoreUint64(c.counters.requests, 0) + if err := enterprisePreSeal(c); err != nil { result = multierror.Append(result, err) }