Re: BUG #16129: Segfault in tts_virtual_materialize in logical replication worker

Ondřej Jirman <ienieghapheoghaiwida@xff.cz>

From: Ondřej Jirman <ienieghapheoghaiwida@xff.cz>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2019-11-21T13:46:45Z
Lists: pgsql-bugs
On Thu, Nov 21, 2019 at 02:37:14PM +0100, Tomas Vondra wrote:
> On Thu, Nov 21, 2019 at 02:12:02PM +0100, Ondřej Jirman wrote:
> > On Thu, Nov 21, 2019 at 01:59:30PM +0100, Tomas Vondra wrote:
> > > On Thu, Nov 21, 2019 at 12:53:26PM +0100, Ondřej Jirman wrote:
> > > >
> > > > ...
> > > >
> > > OK, so this is the problematic table. Any idea what operation triggers
> > > the issue? Having a small reproducer (say, a single-row insert or so)
> > > would be very helpful.
> > 
> > Can something be extracted from the logical decoding data I sent in the other
> > e-mail? That seems to contain the failing operation, but I don't know how to
> > decode it off the top of my head from that binary representation.
> > 
> 
> Well, why not use pg_logical_slot_peek_changes()? That should be human
> readable, I think.

I would, but how?

SELECT * FROM pg_logical_slot_peek_changes('l5_hometv', NULL, NULL,
		'proto_version', '1', 'publication_names', 'pub');
ERROR:  logical decoding output plugin "pgoutput" produces binary output, but
function "pg_logical_slot_peek_changes(name,pg_lsn,integer,text[])" expects
textual data

regards,
	o.

> regards
> 
> -- 
> Tomas Vondra                  http://www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Add test coverage for "unchanged toast column" replication code path.

  2. Fix bogus tuple-slot management in logical replication UPDATE handling.