diff --git a/.changelog/18494.txt b/.changelog/18494.txt new file mode 100644 index 000000000..ac27da4a1 --- /dev/null +++ b/.changelog/18494.txt @@ -0,0 +1,3 @@ +```release-note:bug +server: Fixed a bug where Raft server configuration parameters were not correctly merged +``` diff --git a/command/agent/config.go b/command/agent/config.go index 26bc43e50..8772d952e 100644 --- a/command/agent/config.go +++ b/command/agent/config.go @@ -2038,6 +2038,18 @@ func (s *ServerConfig) Merge(b *ServerConfig) *ServerConfig { } } + if b.RaftSnapshotThreshold != nil { + result.RaftSnapshotThreshold = pointer.Of(*b.RaftSnapshotThreshold) + } + + if b.RaftSnapshotInterval != nil { + result.RaftSnapshotInterval = pointer.Of(*b.RaftSnapshotInterval) + } + + if b.RaftTrailingLogs != nil { + result.RaftTrailingLogs = pointer.Of(*b.RaftTrailingLogs) + } + if b.JobTrackedVersions != nil { result.JobTrackedVersions = b.JobTrackedVersions } diff --git a/command/agent/config_test.go b/command/agent/config_test.go index a78b3fd23..b998b347f 100644 --- a/command/agent/config_test.go +++ b/command/agent/config_test.go @@ -141,6 +141,9 @@ func TestConfig_Merge(t *testing.T) { ProtocolVersion: 1, RaftProtocol: 1, RaftMultiplier: pointer.Of(5), + RaftSnapshotThreshold: pointer.Of(100), + RaftSnapshotInterval: pointer.Of("30m"), + RaftTrailingLogs: pointer.Of(200), NumSchedulers: pointer.Of(1), NodeGCThreshold: "1h", BatchEvalGCThreshold: "4h", @@ -341,6 +344,9 @@ func TestConfig_Merge(t *testing.T) { ProtocolVersion: 2, RaftProtocol: 2, RaftMultiplier: pointer.Of(6), + RaftSnapshotThreshold: pointer.Of(100), + RaftSnapshotInterval: pointer.Of("30m"), + RaftTrailingLogs: pointer.Of(200), NumSchedulers: pointer.Of(2), EnabledSchedulers: []string{structs.JobTypeBatch}, NodeGCThreshold: "12h",