Cap wal_buffers to avoid a server crash when it's set very large.
It must be possible to multiply wal_buffers by XLOG_BLCKSZ without overflowing int, or calculations in StartupXLOG will go badly wrong and crash the server. Avoid that by imposing a maximum value on wal_buffers. This will be just under 2GB, assuming the usual value for XLOG_BLCKSZ. Josh Berkus, per an analysis by Andrew Gierth.
This commit is contained in:
parent
158e3bc8e2
commit
369342cf70
|
@ -2215,7 +2215,7 @@ static struct config_int ConfigureNamesInt[] =
|
||||||
GUC_UNIT_XBLOCKS
|
GUC_UNIT_XBLOCKS
|
||||||
},
|
},
|
||||||
&XLOGbuffers,
|
&XLOGbuffers,
|
||||||
-1, -1, INT_MAX,
|
-1, -1, (INT_MAX / XLOG_BLCKSZ),
|
||||||
check_wal_buffers, NULL, NULL
|
check_wal_buffers, NULL, NULL
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue