BUG #18754: Logical replication cannot restart if client sent a copyDone

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: ua(dot)san(dot)alex(at)gmail(dot)com
Subject: BUG #18754: Logical replication cannot restart if client sent a copyDone
Date: 2024-12-27 12:54:30
Message-ID: 18754-e49e7bda4eb683d9@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 18754
Logged by: S.A.N
Email address: ua(dot)san(dot)alex(at)gmail(dot)com
PostgreSQL version: 17.2
Operating system: MacOS
Description:

Logical replication cannot restart if the client sent a copyDone, because
the streamingDoneReceiving variable is not reassigned to false in function
StartLogicalReplication, this only happens when physical replication in
function StartReplication
https://github.com/postgres/postgres/blob/master/src/backend/replication/walsender.c#L906

I am writing a logical replication client, sometimes I need to exit copy
mode to send simple SQL queries.

I send copyDone, everything works correctly, I can perform SQL queries, but
then I need to return to replication mode, the START_REPLICATION command
will always completed immediately, because the streamingDoneReceiving
backend variable remains in true, I think it should be redefined in false
when starting logical replication.

Thanks.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2024-12-29 08:52:31 BUG #18755: Using Natts_pg_trigger rather than Natts_pg_event_trigger for event trigger
Previous Message px shi 2024-12-27 02:44:42 Re: BUG #18753: Unable to Recover a Deleted Database Using PITR