Logical decoding (contrib/test_decoding) walsender broken in 9.5 master?

Started by Craig Ringeralmost 11 years ago4 messages
#1Craig Ringer
craig@2ndquadrant.com
1 attachment(s)

Hi all

It appears that logical decoding may be broken in 9.5 at the moment.

With HEAD at f6caf5a:

./configure --enable-debug --enable-cassert --prefix=/home/craig/pg/95
CFLAGS="-Og -ggdb -fno-omit-frame-pointer"

make clean install

make -C contrib/test_decoding clean install

PGPORT=5142 PATH=/home/craig/pg/95/bin:$PATH initdb -D ~/tmp/slottest95

PGPORT=5142 PATH=/home/craig/pg/95/bin:$PATH postgres -D ~/tmp/slottest95

and in another session:

psql -p 5142 -c 'SELECT pg_create_logical_replication_slot('test',
'test_decoding');'

in yet another:

PGPORT=5142 PATH=$HOME/pg/95/bin:$PATH pg_recvlogical -d postgres -S test
--start -f -

and back in the psql session do some work:

psql -p 5142 -c 'CREATE TABLE x AS SELECT xx FROM generate_series(1,10000)
xx;'

This works fine in REL9_4_STABLE at a44e54c.

Decoding over the SQL protocol works fine, and "make check" in
contrib/test_decoding passes without errors. This issue only arises in
decoding in a walsender.

I haven't bisected it back to a specific change yet, I just wanted to give
early heads-up. Also, our testing clearly needs to cover logical decoding
over walsenders.

See attachment for the bt.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachments:

gdb.txttext/plain; charset=US-ASCII; name=gdb.txtDownload
#2Michael Paquier
michael.paquier@gmail.com
In reply to: Craig Ringer (#1)
Re: Logical decoding (contrib/test_decoding) walsender broken in 9.5 master?

On Thu, Apr 2, 2015 at 3:48 PM, Craig Ringer <craig@2ndquadrant.com> wrote:

Also, our testing clearly needs to cover logical decoding over walsenders.

Noted.
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Craig Ringer
craig@2ndquadrant.com
In reply to: Craig Ringer (#1)
Re: Logical decoding (contrib/test_decoding) walsender broken in 9.5 master?

I started bisecting from e6df2e1 (stamp 9.4beta1, good) to 095d401 (bad).
The problem revision appears to be 9402869:

commit 9402869
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Sat Jan 17 01:14:32 2015 +0200

Advance backend's advertised xmin more aggressively.

which is somewhat logical given the crash location and symptoms.

Bisection procedure used:

For each step:

./configure --enable-debug --enable-cassert --prefix=/home/craig/pg/95
CFLAGS="-Og -ggdb -fno-omit-frame-pointer" && make clean install && make -C
contrib/test_decoding/ clean install && rm -rf ~/tmp/slottest95 &&
PATH=$HOME/pg/95/bin:$PATH initdb -D ~/tmp/slottest95 && cp
~/tmp/{postgresql.conf,pg_hba.conf} ~/tmp/slottest95 &&
PATH=$HOME/pg/95/bin:$PATH PGPORT=5123 postgres -D ~/tmp/slottest95/

then manually:

psql -p 5123 -c 'SELECT pg_create_logical_replication_slot('test',
'test_decoding');'

PGPORT=5123 PATH=$HOME/pg/95/bin:$PATH pg_recvlogical -d postgres -S test
--start -f -

psql -p 5123 -c 'CREATE TABLE x AS SELECT xx FROM generate_series(1,10000)
xx;'

I have to go out now; I'll follow up further but wanted to update promptly.

#4Michael Paquier
michael.paquier@gmail.com
In reply to: Craig Ringer (#3)
Re: Logical decoding (contrib/test_decoding) walsender broken in 9.5 master?

On Thu, Apr 2, 2015 at 5:35 PM, Craig Ringer <craig@2ndquadrant.com> wrote:

I started bisecting from e6df2e1 (stamp 9.4beta1, good) to 095d401 (bad).
The problem revision appears to be 9402869:

commit 9402869
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Sat Jan 17 01:14:32 2015 +0200

Advance backend's advertised xmin more aggressively.

This rings a bell, I reported a similar issue some weeks back:
/messages/by-id/CAB7nPqQSdx7coHk0D6G=mkJntGYjXPDw+PWisKKSsAeZFTskvg@mail.gmail.com
And there is a patch.
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers