Re: BUG #16643: PG13 - Logical replication - initial startup never finishes and gets stuck in startup loop
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Henry Hinze <henry.hinze@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org, Alvaro Herrera <alvherre@2ndquadrant.com>
Date: 2020-09-30T21:32:04Z
Lists: pgsql-bugs
Henry Hinze <henry.hinze@gmail.com> writes: > I've made an important observation! > Since I had the impression this setup was already working with RC1 of PG > 13, I re-installed RC1 and did the same test. And it's working fine! Ugh. So that points the finger at commits 07082b08c/bfb12cd2b, which are the only nearby change between rc1 and 13.0. A quick comparison of before-and-after checkouts confirms it. After some digging around, I realize that that commit actually resulted in a protocol break. libpqwalreceiver is expecting to get an additional CommandComplete message after COPY OUT finishes, per libpqrcv_endstreaming(), and it's no longer getting one. (I have not read the protocol document to see if this is per spec; but spec or no, that's what libpqwalreceiver is expecting.) The question that this raises is how the heck did that get past our test suites? It seems like the error should have been obvious to even the most minimal testing. regards, tom lane
Commits
-
Fix replication of in-progress transactions in tablesync worker.
- 0926e96c4934 14.0 landed
-
Review logical replication tablesync code
- b05fe7b442fd 14.0 landed
-
Restore replication protocol's duplicate command tags
- 72e43fc313e9 13.1 landed
- 4e9821b6fac5 14.0 landed