Thread: [HACKERS] Logical replication origin tracking fix

[HACKERS] Logical replication origin tracking fix

From
Petr Jelinek
Date:
Hi,

while discussing with Craig issues around restarting logical replication
stream related to the patch he posted [1], I realized that we track
wrong origin LSN in the logical replication apply.

We currently track commit_lsn which is *start* of commit record, what we
need to track is end_lsn which is *end* of commit record otherwise we
might request transaction that was already replayed if the subscription
instance has crashed right after commit.

Attached patch fixes that.

[1]
https://www.postgresql.org/message-id/CAMsr+YGFvikx-U_mHQ0mAzTarqvCpwzvsPKv=7MfP9scDrMPjg@mail.gmail.com

-- 
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

Re: Logical replication origin tracking fix

From
Petr Jelinek
Date:
On 10/03/17 05:59, Petr Jelinek wrote:
> Hi,
> 
> while discussing with Craig issues around restarting logical replication
> stream related to the patch he posted [1], I realized that we track
> wrong origin LSN in the logical replication apply.
> 
> We currently track commit_lsn which is *start* of commit record, what we
> need to track is end_lsn which is *end* of commit record otherwise we
> might request transaction that was already replayed if the subscription
> instance has crashed right after commit.
> 
> Attached patch fixes that.
> 

Rebase after table copy patch got committed.

-- 
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services

Re: Logical replication origin tracking fix

From
Peter Eisentraut
Date:
On 3/24/17 10:48, Petr Jelinek wrote:
> On 10/03/17 05:59, Petr Jelinek wrote:
>> while discussing with Craig issues around restarting logical replication
>> stream related to the patch he posted [1], I realized that we track
>> wrong origin LSN in the logical replication apply.
>>
>> We currently track commit_lsn which is *start* of commit record, what we
>> need to track is end_lsn which is *end* of commit record otherwise we
>> might request transaction that was already replayed if the subscription
>> instance has crashed right after commit.
>>
>> Attached patch fixes that.
>>
> 
> Rebase after table copy patch got committed.

committed

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services