mirror of
https://github.com/kemko/nomad.git
synced 2026-01-03 08:55:43 +03:00
csi: don't wait to fire initial unmount RPC (#12102)
In PR #11892 we updated the `csi_hook` to unmount the volume locally via the CSI node RPCs before releasing the claim from the server. The timer for this hook was initialized with the retry time, forcing us to wait 1s before making the first unmount RPC calls. Use the new helper for timers to ensure we clean up the timer nicely.
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
hclog "github.com/hashicorp/go-hclog"
|
||||
multierror "github.com/hashicorp/go-multierror"
|
||||
"github.com/hashicorp/nomad/client/pluginmanager/csimanager"
|
||||
"github.com/hashicorp/nomad/helper"
|
||||
"github.com/hashicorp/nomad/nomad/structs"
|
||||
"github.com/hashicorp/nomad/plugins/drivers"
|
||||
)
|
||||
@@ -286,13 +287,13 @@ func (c *csiHook) unmountWithRetry(pair *volumeAndRequest) error {
|
||||
defer cancel()
|
||||
var err error
|
||||
backoff := time.Second
|
||||
ticker := time.NewTicker(backoff)
|
||||
defer ticker.Stop()
|
||||
t, stop := helper.NewSafeTimer(0)
|
||||
defer stop()
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return err
|
||||
case <-ticker.C:
|
||||
case <-t.C:
|
||||
}
|
||||
|
||||
err = c.unmountImpl(pair)
|
||||
@@ -306,7 +307,7 @@ func (c *csiHook) unmountWithRetry(pair *volumeAndRequest) error {
|
||||
backoff = c.maxBackoffInterval
|
||||
}
|
||||
}
|
||||
ticker.Reset(backoff)
|
||||
t.Reset(backoff)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user