From e02b1a167cf9e51656915270e942cc401d04ded4 Mon Sep 17 00:00:00 2001 From: Russell Stern Date: Mon, 15 Jun 2026 09:44:51 -0400 Subject: [PATCH] Added vault pending queue stuck threshold --- pkg/settings/cresettings/README.md | 1 + pkg/settings/cresettings/defaults.json | 1 + pkg/settings/cresettings/defaults.toml | 1 + pkg/settings/cresettings/settings.go | 26 ++++++++++++----------- pkg/settings/cresettings/settings_test.go | 1 + 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/pkg/settings/cresettings/README.md b/pkg/settings/cresettings/README.md index 879897bcf2..5e5db19f9d 100644 --- a/pkg/settings/cresettings/README.md +++ b/pkg/settings/cresettings/README.md @@ -237,6 +237,7 @@ flowchart VaultPluginBatchSizeLimit{{VaultPluginBatchSizeLimit}}:::bound VaultRequestBatchSizeLimit{{VaultRequestBatchSizeLimit}}:::bound VaultPendingQueueWriteSizeLimit{{VaultPendingQueueWriteSizeLimit}}:::bound + VaultPendingQueueStuckRoundThreshold{{VaultPendingQueueStuckRoundThreshold}}:::bound VaultMaxQuerySizeLimit{{VaultMaxQuerySizeLimit}}:::bound VaultMaxObservationSizeLimit{{VaultMaxObservationSizeLimit}}:::bound VaultMaxReportsPlusPrecursorSizeLimit{{VaultMaxReportsPlusPrecursorSizeLimit}}:::bound diff --git a/pkg/settings/cresettings/defaults.json b/pkg/settings/cresettings/defaults.json index 25854e8f62..196c336995 100644 --- a/pkg/settings/cresettings/defaults.json +++ b/pkg/settings/cresettings/defaults.json @@ -10,6 +10,7 @@ "VaultForceEmptyOCRRounds": "false", "VaultOptimizationsEnabled": "false", "VaultSignedResponseRequestIDEnabled": "false", + "VaultPendingQueueStuckRoundThreshold": "0", "GatewayHTTPGlobalRate": "500rps:500", "GatewayHTTPPerNodeRate": "100rps:100", "GatewayConfidentialRelayGlobalRate": "50rps:10", diff --git a/pkg/settings/cresettings/defaults.toml b/pkg/settings/cresettings/defaults.toml index 3f591334ad..4a78e2b5b0 100644 --- a/pkg/settings/cresettings/defaults.toml +++ b/pkg/settings/cresettings/defaults.toml @@ -9,6 +9,7 @@ VaultBase64EncodingEnabled = 'false' VaultForceEmptyOCRRounds = 'false' VaultOptimizationsEnabled = 'false' VaultSignedResponseRequestIDEnabled = 'false' +VaultPendingQueueStuckRoundThreshold = '0' GatewayHTTPGlobalRate = '500rps:500' GatewayHTTPPerNodeRate = '100rps:100' GatewayConfidentialRelayGlobalRate = '50rps:10' diff --git a/pkg/settings/cresettings/settings.go b/pkg/settings/cresettings/settings.go index 1110562b8d..051832c9ce 100644 --- a/pkg/settings/cresettings/settings.go +++ b/pkg/settings/cresettings/settings.go @@ -64,6 +64,7 @@ var Default = Schema{ VaultForceEmptyOCRRounds: Bool(false), VaultOptimizationsEnabled: Bool(false), VaultSignedResponseRequestIDEnabled: Bool(false), + VaultPendingQueueStuckRoundThreshold: Int(0), GatewayHTTPGlobalRate: Rate(rate.Limit(500), 500), GatewayHTTPPerNodeRate: Rate(rate.Limit(100), 100), GatewayConfidentialRelayGlobalRate: Rate(rate.Limit(50), 10), @@ -229,12 +230,12 @@ var Default = Schema{ CallLimit: Int(20), }, HTTPAction: httpAction{ - CallLimit: Int(5), - CacheAgeLimit: Duration(10 * time.Minute), - ConnectionTimeout: Duration(10 * time.Second), - RequestSizeLimit: Size(10 * config.KByte), - ResponseSizeLimit: Size(100 * config.KByte), - GatewayProxyDonID: String(""), + CallLimit: Int(5), + CacheAgeLimit: Duration(10 * time.Minute), + ConnectionTimeout: Duration(10 * time.Second), + RequestSizeLimit: Size(10 * config.KByte), + ResponseSizeLimit: Size(100 * config.KByte), + GatewayProxyDonID: String(""), }, ConfidentialHTTP: confidentialHTTP{ CallLimit: Int(5), @@ -271,6 +272,7 @@ type Schema struct { VaultForceEmptyOCRRounds Setting[bool] VaultOptimizationsEnabled Setting[bool] VaultSignedResponseRequestIDEnabled Setting[bool] + VaultPendingQueueStuckRoundThreshold Setting[int] `unit:"{round}"` GatewayHTTPGlobalRate Setting[config.Rate] GatewayHTTPPerNodeRate Setting[config.Rate] GatewayConfidentialRelayGlobalRate Setting[config.Rate] @@ -413,12 +415,12 @@ type chainRead struct { PayloadSizeLimit Setting[config.Size] } type httpAction struct { - CallLimit Setting[int] `unit:"{call}"` - CacheAgeLimit Setting[time.Duration] - ConnectionTimeout Setting[time.Duration] - RequestSizeLimit Setting[config.Size] - ResponseSizeLimit Setting[config.Size] - GatewayProxyDonID Setting[string] + CallLimit Setting[int] `unit:"{call}"` + CacheAgeLimit Setting[time.Duration] + ConnectionTimeout Setting[time.Duration] + RequestSizeLimit Setting[config.Size] + ResponseSizeLimit Setting[config.Size] + GatewayProxyDonID Setting[string] } type perOrgHTTPAction struct { MtlsRateLimit Setting[config.Rate] diff --git a/pkg/settings/cresettings/settings_test.go b/pkg/settings/cresettings/settings_test.go index 01c9e4f074..df32d7ce85 100644 --- a/pkg/settings/cresettings/settings_test.go +++ b/pkg/settings/cresettings/settings_test.go @@ -131,6 +131,7 @@ func TestSchema_Unmarshal(t *testing.T) { assert.False(t, cfg.VaultForceEmptyOCRRounds.DefaultValue) assert.False(t, cfg.VaultOptimizationsEnabled.DefaultValue) assert.False(t, cfg.VaultSignedResponseRequestIDEnabled.DefaultValue) + assert.Equal(t, 0, cfg.VaultPendingQueueStuckRoundThreshold.DefaultValue) assert.Equal(t, config.Rate{Limit: rate.Limit(20), Burst: 7}, cfg.GatewayConfidentialRelayGlobalRate.DefaultValue) assert.Equal(t, config.Rate{Limit: rate.Limit(4), Burst: 2}, cfg.GatewayConfidentialRelayPerNodeRate.DefaultValue) assert.Equal(t, 48*time.Hour, cfg.PerOrg.ZeroBalancePruningTimeout.DefaultValue)