On 2020-07-07 12:30, Markus Wanner wrote:
> in shm_mq_receive of shm_mq.c, a huge payload may trigger an unjustified
> "invalid memory alloc request size" error due to the way the buffer size
> is increased.
>
> I understand that this fine piece of infrastructure may not have been
> designed for huge payloads. I still argue it should better not fail
> that way for payloads between half a gigabyte and MaxAllocSize. The
> attached patch adds an appropriate assertion (documenting the upper
> limit) and avoids the error by limiting the allocation size to
> MaxAllocSize (to correct for such huge payloads below the limit).
I wonder if the assertion is appropriate or whether it should be a full
error check. Is anything on the sending side ensuring that the maximum
size is kept? All the size variables are Size/size_t so could be much
larger than MaxAllocSize.
Robert, thoughts?
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services