As documented in guc.h, MAX_KILOBYTES is used to cap GUC parameters that
are measured in kilobytes of memory. This way, size_t values can fit in
builds where sizeof(size_t) is 4 bytes.
Unfortunately, huge_page_size has missed this aspect, causing
calculation failures when setting this GUC to a value higher than
MAX_KILOBYTES, up to INT_MAX.
Oversight in
d2bddc2500fb. No backpatch is done, based on the lack of
complaints.
Reported-by: Daria Shanina <vilensipkdm@gmail.com>
Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Discussion: https://postgr.es/m/
20260626.132415.
904994526137946499.horikyota.ntt@gmail.com
variable => 'huge_page_size',
boot_val => '0',
min => '0',
- max => 'INT_MAX',
+ max => 'MAX_KILOBYTES',
check_hook => 'check_huge_page_size',
},