pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
To: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Subject: The XLogFindNextRecord() routine find incorrect record start point after a long continuation record
Date: Wed, 6 Nov 2019 07:40:48 +0500
Message-ID: <99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru> (raw)

I found this in our multimaster project on PostgreSQL 11.5. It is 
difficult to reproduce this error, but I will try to do it if necessary.

The rest of a continuation WAL-record can exactly match the block size. 
In this case, we need to switch targetPagePtr to the next block before 
calculating the starting point of the next WAL-record.
See the patch in attachment for the bug fix.

-- 
Andrey Lepikhov
Postgres Professional
https://postgrespro.com
The Russian Postgres Company

Attachments:

  0001-Correct-the-algorithm-of-definition-of-WAL-record-st.patch (text/x-patch, 0B) download

view thread (7+ messages)  latest in thread

Message-ID: <99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru>
Permalink:  ../99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru/
Also on:    postgresql.org/message-id/99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: a.lepikhov@postgrespro.ru, pgsql-bugs@lists.postgresql.org
  Subject: Re: The XLogFindNextRecord() routine find incorrect record start point after a long continuation record
  In-Reply-To: <99303554-5dd5-06e6-f943-b3005ccd6edd@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox