Fix crash in WAL sender when starting physical replication
authorMichael Paquier <michael@paquier.xyz>
Mon, 8 Jun 2020 01:12:24 +0000 (10:12 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 8 Jun 2020 01:12:24 +0000 (10:12 +0900)
commit879ad9f90e83b94db14b8be11f1cc1fb38187cc0
treea515686acf7ee68a60240266f635877282e2176b
parent5a2398b0b2d30315469ee00ca289ea88b03ccfd8
Fix crash in WAL sender when starting physical replication

Since database connections can be used with WAL senders in 9.4, it is
possible to use physical replication.  This commit fixes a crash when
starting physical replication with a WAL sender using a database
connection, caused by the refactoring done in 850196b.

There have been discussions about forbidding the use of physical
replication in a database connection, but this is left for later,
taking care only of the crash new to 13.

While on it, add a test to check for a failure when attempting logical
replication if the WAL sender does not have a database connection.  This
part is extracted from a larger patch by Kyotaro Horiguchi.

Reported-by: Vladimir Sitnikov
Author: Michael Paquier, Kyotaro Horiguchi
Reviewed-by: Kyotaro Horiguchi, Álvaro Herrera
Discussion: https://postgr.es/m/CAB=Je-GOWMj1PTPkeUhjqQp-4W3=nW-pXe2Hjax6rJFffB5_Aw@mail.gmail.com
Backpatch-through: 13
src/backend/access/transam/xlogreader.c
src/backend/replication/walsender.c
src/include/access/xlogreader.h
src/test/recovery/t/006_logical_decoding.pl