Skip to content

Commit 94414f8

Browse files
committed
Narrow the scope, so we don't cause any unforeseen issues
1 parent 8b4fd9e commit 94414f8

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

internal/flypg/pg.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,15 @@ func (c *PGConfig) SetDefaults(ctx context.Context, store *state.Store) error {
184184
return fmt.Errorf("failed to set recovery target config: %s", err)
185185
}
186186

187-
// Override any default settings that may conflict with pg_control.
187+
// Evaluate pg_control settings to determine if any internal settings need to be updated
188+
if err := c.setPGControlOverrides(ctx); err != nil {
189+
return fmt.Errorf("failed to set pg_control overrides: %s", err)
190+
}
191+
192+
return nil
193+
}
194+
195+
func (c *PGConfig) setPGControlOverrides(ctx context.Context) error {
188196
pgControlMap, err := pgControlSettings(ctx)
189197
if err != nil {
190198
return fmt.Errorf("failed to fetch pg_control settings: %s", err)
@@ -197,10 +205,17 @@ func (c *PGConfig) SetDefaults(ctx context.Context, store *state.Store) error {
197205
continue
198206
}
199207

200-
// Check for value discrepancies and log a warning if found.
201-
if c.internalConfig[k] != v {
202-
log.Printf("[WARN] Overriding internal config setting %s: %s -> %s", k, c.internalConfig[k], v)
203-
c.internalConfig[k] = v
208+
if k == "max_connections" {
209+
maxConns, err := strconv.Atoi(v)
210+
if err != nil {
211+
log.Printf("[WARN] Failed to parse max_connections from pg_control: %v", err)
212+
continue
213+
}
214+
if maxConns > c.internalConfig[k].(int) {
215+
// If the max_connections from pg_control is greater than the current default, update it.
216+
log.Printf("[WARN] pg_control specifies a max_connections value of %d, which is greater than our default of %d. Updating.", maxConns, c.internalConfig[k].(int))
217+
c.internalConfig[k] = maxConns
218+
}
204219
}
205220
}
206221
}

0 commit comments

Comments
 (0)