On Thu, 21 Mar 2019 at 15:18, Alexander Korotkov <aekorot...@gmail.com> wrote:
> On Thu, Mar 21, 2019 at 9:26 PM Simon Riggs <si...@2ndquadrant.com> wrote: > > > > It's been pointed out to me that 52ac6cd2d0cd70e01291e0ac4ee6d068b69bc478 > > introduced a WAL incompatibility that has not been flagged. > > > > In ginRedoDeletePage() we use the struct directly to read the WAL > record, so if a WAL record was written prior to > 52ac6cd2d0cd70e01291e0ac4ee6d068b69bc478, yet read by code at > 52ac6cd2d0cd70e01291e0ac4ee6d068b69bc478 or later then we will have > problems, since deleteXid will not be set correctly. > > > > It seems this should not have been backpatched. > > > > Please give your assessment. > > Oh, right. This is my fault. > > However, I think this still can be backpatched correctly. We can > determine whether xlog record data contains deleteXid by its size. > See the attached patch. I haven't test this yet. I'm going to test > it. If OK, then push. > Patch looks like it will work. I'd prefer to see a tighter test, since the length should either be the old or new length, no other. Thanks -- Simon Riggs http://www.2ndQuadrant.com/ <http://www.2ndquadrant.com/> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services