1. Tried to apply the patch to PG 12.2 commit 
45b88269a353ad93744772791feb6d01bc7e1e42 (HEAD -> REL_12_2, tag: REL_12_2), it 
doesn't work. Then tried to check the patch, and found the errors showing below.
$ git apply --check 
0001-Fastpath-for-sending-changes-to-output-plugin-in-log.patch
error: patch failed: contrib/test_decoding/logical.conf:1
error: contrib/test_decoding/logical.conf: patch does not apply
error: patch failed: src/backend/replication/logical/reorderbuffer.c:1133
error: src/backend/replication/logical/reorderbuffer.c: patch does not apply

2. Ran a further check for file "logical.conf", and found there is only one 
commit since 2014, which doesn't have the parameter, "logical_decoding_work_mem 
= 64kB"

3. Manually apply the patch including 
src/backend/replication/logical/reorderbuffer.c, and then ran a simple logical 
replication test. A connection issue is found like below,
"table public.pgbench_accounts: INSERT: aid[integer]:4071 bid[integer]:1 
abalance[integer]:0 filler[character]:'                                         
                                           '
pg_recvlogical: error: could not receive data from WAL stream: server closed 
the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
pg_recvlogical: disconnected; waiting 5 seconds to try again"

4. This connection issue can be reproduced on PG 12.2 commit mentioned above, 
the basic steps,
4.1 Change "wal_level = logical" in "postgresql.conf"
4.2 create a logical slot and listen on it,
$ pg_recvlogical -d postgres --slot test --create-slot
$ pg_recvlogical -d postgres --slot test --start -f -

4.3 from another terminal, run the command below,
$ pgbench -i -p 5432 -d postgres

Let me know if I did something wrong, and if a new patch is available, I can 
re-run the test on the same environment.

-- 
David
Software Engineer
Highgo Software Inc. (Canada)
www.highgo.ca

Reply via email to