[BUGS] [BUG] pg9.4.10 Logical decoding did not get the correct oldtuplelen - Mailing list pgsql-bugs

From anderson
Subject [BUGS] [BUG] pg9.4.10 Logical decoding did not get the correct oldtuplelen
Date
Msg-id tencent_5B4204547B0BB8C05F9B1D99@qq.com
Whole thread Raw
Responses Re: [BUGS] [BUG] pg9.4.10 Logical decoding did not get the correct oldtuplelen
List pgsql-bugs
hi team:

I found a postgresql 9.4.10 Logical decoding problem
heapam.c:6976 xlog store incorrect oldtuplen when tuplelen is greater than the value field of uint16.

a uint32 variable is assigned to uint16

The structure that holds the oldkey length is:
typedef struct xl_heap_header_len
{
uint16 t_len;
xl_heap_header header;
} xl_heap_header_len;

The problem will lead to logic decoding failure when oldtuplene > 65535 and relreplident = FULL.
The table that triggers the problem is usually relreplident = FULL.
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff} span.s1 {font-variant-ligatures: no-common-ligatures}

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: [BUGS] pg_receivexlog creating holes in WAL (HEAD only)
Next
From: Michael Paquier
Date:
Subject: Re: [BUGS] [BUG] pg9.4.10 Logical decoding did not get the correct oldtuplelen