Re: logrep stuck with 'ERROR: int2vector has too many elements'

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Erik Rijkers <er@xs4all.nl>, pgsql-hackers@postgresql.org
Date: 2023-01-15T20:48:14Z
Lists: pgsql-hackers
I wrote:
> BTW, fd0b9dceb is in v15, so are you sure this doesn't fail in 15?

Ah-hah: simple test cases only fail since b7ae03953.  Before
that, the default situation was that pg_publication_rel.prattrs
was null and that would be passed on as the transmitted value.
b7ae03953 decided it'd be cool if pg_get_publication_tables()
expanded that to show all the actually-transmitted columns,
and as of that point we can get an overflow in int2vectorin
given the default case where all columns are published.

To break it in v15, you need a test case that publishes more than
100 columns, but not all of them (else the optimization in
fetch_remote_table_info's query prevents the issue).

			regards, tom lane



Commits

  1. Remove arbitrary FUNC_MAX_ARGS limit in int2vectorin and oidvectorin.