RE: [Patch] add new parameter to pg_replication_origin_session_setup

Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>

From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'shveta malik' <shveta.malik@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, Doruk Yilmaz <doruk@mixrank.com>
Date: 2026-01-14T03:43:47Z
Lists: pgsql-hackers

Attachments

Dear Shveta,

> 1)
> +step s1_reset: SELECT pg_replication_origin_session_reset();
> 
> After the above step, please add a step to attempt dropping the
> replication origin. The original issue was that once s1 releases the
> origin, it becomes eligible for dropping, so the test should
> explicitly verify this behavior.

I think it is bit difficult because pg_replication_origin_drop() has PID in the
ERROR message. Also, this patch prevents first process resets the origin, i.e.,
the exact same situation won't happen anymore. Not fixed.

> 2)
> Also before the above step, please add a step where s0 tries to reset
> the origin while s1 is still acquiring it. It is needed to cover the
> path where s0 should fail to release origin.

The step has already existed, see below.

```
step s0_reset: SELECT pg_replication_origin_session_reset();
ERROR:  cannot reset replication origin with ID 1 because it is still in use by other processes
step s1_reset: SELECT pg_replication_origin_session_reset();
pg_replication_origin_session_reset
-----------------------------------
                                   
(1 row)
```

Others are corrected and adjusted by me, see the attached.
0001 and 0002 are combined because no one claimed them.

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Commits

  1. Refactor replorigin_session_setup() for better readability.

  2. Prevent unintended dropping of active replication origins.

  3. Add optional pid parameter to pg_replication_origin_session_setup().