Subject: Re: [PATCH] Allow Postgres to pick an unused port to listen

From: Cary Huang <[email-masked]>
Date: Fri, 05 May 2023 22:30:21 +0000

The following review has been posted through the commitfest application:
make installcheck-world:  tested, passed
Implements feature:       tested, failed
Spec compliant:           not tested
Documentation:            not tested

Hello

This is one of those features that is beneficial to a handful of people in specific test cases. It may not benefit the majority of the users but is certainly not useless either. As long as it can be disabled and enough tests have been run to ensure it won't have a significant impact on working components while disabled, it should be fine in my opinion. Regarding where the selected port shall be saved (postmaster.pid, read by pg_ctl or saved in a dedicated file), I see that postmaster.pid already contains a port number in line number 4, so adding a port number into there is nothing new; port number is already there and we can simply replace the port number with the one selected by the system. 

I applied and tested the patch and found that the system can indeed start when port is set to 0, but line 4 of postmaster.pid does not store the port number selected by the system, rather, it stored 0, which is the same as configured. So I am actually not able to find out the port number that my PG is running on, at least not in a straight-forward way. 

thank you
==================
Cary Huang
HighGo Software
www.highgo.ca

---

From: Yurii Rashkovskii <[email-masked]>
Date: Sun, 7 May 2023 10:07:52 +0200

Hi Cary,

Thank you so much for the review. It's very valuable, and you caught an
important issue with it that I somehow missed (not updating the .pid file
with the selected port number). I'm not sure how it escaped me (perhaps I
was focusing too much on the log file to validate the behaviour).

I've amended the patch to ensure the port number is in the lock file. I've
attached V2.

Yurii

On Sat, May 6, 2023 at 12:31 AM Cary Huang <[email-masked]> wrote:

> This is one of those features that is beneficial to a handful of people in
> specific test cases. It may not benefit the majority of the users but is
> certainly not useless either. As long as it can be disabled and enough
> tests have been run to ensure it won't have a significant impact on working
> components while disabled, it should be fine in my opinion. Regarding where
> the selected port shall be saved (postmaster.pid, read by pg_ctl or saved
> in a dedicated file), I see that postmaster.pid already contains a port
> number in line number 4, so adding a port number into there is nothing new;
> port number is already there and we can simply replace the port number with
> the one selected by the system.
>
> I applied and tested the patch and found that the system can indeed start
> when port is set to 0, but line 4 of postmaster.pid does not store the port
> number selected by the system, rather, it stored 0, which is the same as
> configured. So I am actually not able to find out the port number that my
> PG is running on, at least not in a straight-forward way.
>
> thank you
> ==================
> Cary Huang
> HighGo Software
> www.highgo.ca

-- 
Y.