BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?
От | PG Bug reporting form |
---|---|
Тема | BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()? |
Дата | |
Msg-id | 18486-22cd3a6dc05a2454@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18486 Logged by: Xingwang Xu Email address: xu.xw2008@163.com PostgreSQL version: 17beta1 Operating system: CentOS7.9 Description: In the code related to logical replication, there is a function ReorderBufferChangeSize(), which is used to calculate the size of a change in memory. When looking at the ReorderBufferChangeSize() function, I saw the following code: case REORDER_BUFFER_CHANGE_MESSAGE: { Size prefix_size = strlen(change->data.msg.prefix) + 1; sz += prefix_size + change->data.msg.message_size + sizeof(Size) + sizeof(Size); break; } When calculating the change size of the message type, there are two “sizeof(Size)” in the code. It is not clear why these two “sizeof(Size)” are added and whether these two “sizeof(Size)” are redundant. The data in change of message type is defined as: struct { char *prefix; Size message_size; char *message; } msg; The size of msg seems to have been calculated at the beginning of ReorderBufferChangeSize() with “sizeof(ReorderBufferChange)”.Is it only necessary to add the specific data space occupied by *prefix and *message? Not super familiar with this so please let me know if there's something I've missed. Thanks, Xingwang xu
В списке pgsql-bugs по дате отправления: