Re:Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?

From: Michael <xu(dot)xw2008(at)163(dot)com>
To: "Amit Kapila" <amit(dot)kapila16(at)gmail(dot)com>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re:Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?
Date: 2024-06-06 10:05:54
Message-ID: 7eb97a5b.a6b4.18fed031b9c.Coremail.xu.xw2008@163.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

At 2024-06-04 13:28:52, "Amit Kapila" <amit(dot)kapila16(at)gmail(dot)com> wrote:

>On Thu, May 30, 2024 at 2:30 AM PG Bug reporting form
><noreply(at)postgresql(dot)org> wrote:
>>
>> The following bug has been logged on the website:
>>
>> Bug reference: 18486
>> Logged by: Xingwang Xu
>> Email address: xu(dot)xw2008(at)163(dot)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.
>>
>
>These two sizeof(Size) are added as while serializing or restoring
>message change, we explicitly serialize/restore the size of the prefix
>and the actual message. See
>ReorderBufferSerializeChange()/ReorderBufferRestoreChange().
>

Thanks for your reply.

I see in the code that the function ReorderBufferChangeSize() is used to calculate the space in memory, while ReorderBufferSerializeChange()/ReorderBufferRestoreChange() calculates the space on disk.

Am I right in understanding this?

With Regards,
Xingwang Xu

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sandeep Thakkar 2024-06-06 13:36:56 Re: BUG #18473: Problems deployment postgresql for windows
Previous Message PG Bug reporting form 2024-06-06 09:36:15 BUG #18497: Heap-use-after-free in plpgsql