On Fri, Nov 22, 2019 at 05:12:48PM +0100, Tomas Vondra wrote:
> On Fri, Nov 22, 2019 at 01:54:01AM +0100, Ondřej Jirman wrote:
> > On Thu, Nov 21, 2019 at 07:45:34PM -0500, Tom Lane wrote:
> > > =?utf-8?Q?Ond=C5=99ej?= Jirman <ienieghapheoghaiwida@xff.cz> writes:
> > > > On Thu, Nov 21, 2019 at 11:08:54PM +0100, Tomas Vondra wrote:
> > > >> 1) Print newtup.values and newtup.changed matches, so that we can check
> > > >> it contains the tuple I shared before? There should be 8 elements in
> > > >> each, with 'values' being values formatted as text, and 'changed' being
> > > >> flags which values were updated.
> > >
> > > > newtup.changed
> > >
> > > > {true, true, false, true, true, true, true, true, false <repeats 1656 times>}
> > >
> > > So column 3 is not getting replaced. That seems to jibe with my
> > > theory that slot_modify_cstrings is failing to handle that case
> > > correctly. Can you try applying the patch I posted and see if
> > > it fixes the issue for you?
> >
> > With the patch the replication resumes, without a crash.
> >
> > confirmed_flush_lsn is now same for all my replication slots.
> >
> > thank you and regards,
>
> Can you show us the attribute list as defined in the system, including
> e.g. dropped columns? That is, something like
>
> SELECT attnum, attname, atttypid FROM pg_attribute
> WHERE attrelid = 'public.videos'::regclass;
>
> both from the published and subscriber.
I don't think there were any dropped columns and replica was always created
by schema copy + subscribe with copy_data=true. Anyway, the original database is
gone now (on both ends), so I can't get any more info.
regards,
o.
> regards
>
> --
> Tomas Vondra http://www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services