Обсуждение: Logical decoding (contrib/test_decoding) walsender broken in 9.5 master?

Поиск
Список
Период
Сортировка

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

От
Craig Ringer
Дата:
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
Вложения

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

От
Michael Paquier
Дата:
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



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

От
Craig Ringer
Дата:
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.


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

От
Michael Paquier
Дата:
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:
http://www.postgresql.org/message-id/CAB7nPqQSdx7coHk0D6G=mkJntGYjXPDw+PWisKKSsAeZFTskvg@mail.gmail.com
And there is a patch.
-- 
Michael