fix(worker): set session.CloseCallTimeout to non-zero value (#5510)
This commit is contained in:
1 parent
43338db7ed
commit
5bd142ddb4
2 files changed
+94
-1
No files matched your search
@@ -485,7 +485,7 @@ func (w *Worker) Reload(ctx context.Context, newConf *config.Config) {
|
||||
|
||||
w.parseAndStoreTags(newConf.Worker.Tags)
|
||||
|
||||
switch newConf.Worker.SuccessfulControllerRPCGracePeriod {
|
||||
switch newConf.Worker.SuccessfulControllerRPCGracePeriodDuration {
|
||||
case 0:
|
||||
w.successfulRoutingInfoGracePeriod.Store(int64(server.DefaultLiveness))
|
||||
w.successfulSessionInfoGracePeriod.Store(int64(server.DefaultLiveness))
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
|
||||
"github.com/hashicorp/boundary/internal/cmd/base"
|
||||
"github.com/hashicorp/boundary/internal/cmd/config"
|
||||
"github.com/hashicorp/boundary/internal/daemon/worker/common"
|
||||
"github.com/hashicorp/boundary/internal/daemon/worker/session"
|
||||
"github.com/hashicorp/boundary/internal/db"
|
||||
"github.com/hashicorp/boundary/internal/event"
|
||||
@@ -223,6 +224,98 @@ func TestWorkerNew(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkerReload(t *testing.T) {
|
||||
t.Run("default config is the same as the reload config", func(t *testing.T) {
|
||||
require, assert := require.New(t), assert.New(t)
|
||||
cfg := &Config{
|
||||
Server: &base.Server{
|
||||
Logger: hclog.Default(),
|
||||
Eventer: &event.Eventer{},
|
||||
Listeners: []*base.ServerListener{
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"api"}}},
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"proxy"}}},
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"cluster"}}},
|
||||
},
|
||||
},
|
||||
RawConfig: &config.Config{
|
||||
SharedConfig: &configutil.SharedConfig{DisableMlock: true},
|
||||
Worker: &config.Worker{},
|
||||
},
|
||||
}
|
||||
w, err := New(context.Background(), cfg)
|
||||
require.NoError(err)
|
||||
|
||||
assert.Equal(int64(server.DefaultLiveness), w.successfulRoutingInfoGracePeriod.Load())
|
||||
assert.Equal(int64(server.DefaultLiveness), w.successfulSessionInfoGracePeriod.Load())
|
||||
assert.Equal(int64(server.DefaultLiveness), session.CloseCallTimeout.Load())
|
||||
|
||||
assert.Equal(int64(common.DefaultRoutingInfoTimeout), w.routingInfoCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(common.DefaultStatisticsTimeout), w.statisticsCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(common.DefaultSessionInfoTimeout), w.sessionInfoCallTimeoutDuration.Load())
|
||||
|
||||
assert.Equal(int64(server.DefaultLiveness), w.getDownstreamWorkersTimeoutDuration.Load())
|
||||
|
||||
w.Reload(context.Background(), cfg.RawConfig)
|
||||
|
||||
assert.Equal(int64(server.DefaultLiveness), w.successfulRoutingInfoGracePeriod.Load())
|
||||
assert.Equal(int64(server.DefaultLiveness), w.successfulSessionInfoGracePeriod.Load())
|
||||
assert.Equal(int64(server.DefaultLiveness), session.CloseCallTimeout.Load())
|
||||
|
||||
assert.Equal(int64(common.DefaultRoutingInfoTimeout), w.routingInfoCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(common.DefaultStatisticsTimeout), w.statisticsCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(common.DefaultSessionInfoTimeout), w.sessionInfoCallTimeoutDuration.Load())
|
||||
|
||||
assert.Equal(int64(server.DefaultLiveness), w.getDownstreamWorkersTimeoutDuration.Load())
|
||||
})
|
||||
|
||||
t.Run("new config is the same as the reload config", func(t *testing.T) {
|
||||
require, assert := require.New(t), assert.New(t)
|
||||
cfg := &Config{
|
||||
Server: &base.Server{
|
||||
Logger: hclog.Default(),
|
||||
Eventer: &event.Eventer{},
|
||||
Listeners: []*base.ServerListener{
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"api"}}},
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"proxy"}}},
|
||||
{Config: &listenerutil.ListenerConfig{Purpose: []string{"cluster"}}},
|
||||
},
|
||||
},
|
||||
RawConfig: &config.Config{
|
||||
SharedConfig: &configutil.SharedConfig{DisableMlock: true},
|
||||
Worker: &config.Worker{
|
||||
SuccessfulControllerRPCGracePeriodDuration: 5 * time.Second,
|
||||
ControllerRPCCallTimeoutDuration: 10 * time.Second,
|
||||
GetDownstreamWorkersTimeoutDuration: 20 * time.Second,
|
||||
},
|
||||
},
|
||||
}
|
||||
w, err := New(context.Background(), cfg)
|
||||
require.NoError(err)
|
||||
|
||||
assert.Equal(int64(5*time.Second), w.successfulRoutingInfoGracePeriod.Load())
|
||||
assert.Equal(int64(5*time.Second), w.successfulSessionInfoGracePeriod.Load())
|
||||
assert.Equal(w.successfulRoutingInfoGracePeriod.Load(), session.CloseCallTimeout.Load())
|
||||
|
||||
assert.Equal(int64(10*time.Second), w.routingInfoCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(10*time.Second), w.statisticsCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(10*time.Second), w.sessionInfoCallTimeoutDuration.Load())
|
||||
|
||||
assert.Equal(int64(20*time.Second), w.getDownstreamWorkersTimeoutDuration.Load())
|
||||
|
||||
w.Reload(context.Background(), cfg.RawConfig)
|
||||
|
||||
assert.Equal(int64(5*time.Second), w.successfulRoutingInfoGracePeriod.Load())
|
||||
assert.Equal(int64(5*time.Second), w.successfulSessionInfoGracePeriod.Load())
|
||||
assert.Equal(w.successfulRoutingInfoGracePeriod.Load(), session.CloseCallTimeout.Load())
|
||||
|
||||
assert.Equal(int64(10*time.Second), w.routingInfoCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(10*time.Second), w.statisticsCallTimeoutDuration.Load())
|
||||
assert.Equal(int64(10*time.Second), w.sessionInfoCallTimeoutDuration.Load())
|
||||
|
||||
assert.Equal(int64(20*time.Second), w.getDownstreamWorkersTimeoutDuration.Load())
|
||||
})
|
||||
}
|
||||
|
||||
func TestSetupWorkerAuthStorage(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
|
||||
Reference in new issue
Block a user