Re: Standby corruption after master is restarted

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
Cc: emre(at)hasegeli(dot)com, tomas(dot)vondra(at)2ndquadrant(dot)com, pgsql-bugs(at)postgresql(dot)org, gurkan(dot)gur(at)innogames(dot)com, david(dot)pusch(at)innogames(dot)com, patrick(dot)schmidt(at)innogames(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Standby corruption after master is restarted
Date: 2018-04-26 12:13:48
Message-ID: 20180426121348.GA2365@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Thu, Apr 26, 2018 at 07:53:04PM +0900, Kyotaro HORIGUCHI wrote:
> I think this behavior is a bug. XLogReadRecord is considering the
> case but palloc_extended() breaks it. So in the attached, add a
> new flag MCXT_ALLOC_NO_PARAMERR to palloc_extended() and
> allocate_recordbuf calls it with the new flag. That alone fixes
> the problem. However, the patch frees read state buffer facing
> errorneous records since such records can leave a too-large
> buffer allocated.

This problem is already discussed here:
https://commitfest.postgresql.org/18/1516/

And here is the thread:
https://www.postgresql.org/message-id/flat/0A3221C70F24FB45833433255569204D1F8B57AD(at)G01JPEXMBYT05

Tsunakawa-san and I discussed a couple of approaches. Extending
palloc_extended so as an incorrect length does not result in an error is
also something that crossed by mind, but the length handling is
different on the backend and the frontend, so I discarded the idea you
are proposing here and instead relied on a check with AllocSizeIsValid,
which gives a more simple patch:
https://www.postgresql.org/message-id/20180314052753.GA16179%40paquier.xyz

This got no interest from committers yet unfortunately, but I think that
this is a real problem which should be back-patched :(
--
Michael

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2018-04-26 12:21:20 Re: weird behavior of ORDER BY
Previous Message Kyotaro HORIGUCHI 2018-04-26 10:53:04 Re: Standby corruption after master is restarted

Browse pgsql-hackers by date

  From Date Subject
Next Message Etsuro Fujita 2018-04-26 12:16:38 Re: Oddity in tuple routing for foreign partitions
Previous Message Etsuro Fujita 2018-04-26 12:06:43 Re: Expression errors with "FOR UPDATE" and postgres_fdw with partition wise join enabled.