Re: Free port choosing freezes when PostgresNode::use_tcp is used on BSD systems

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alexey Kondratov <a(dot)kondratov(at)postgrespro(dot)ru>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Free port choosing freezes when PostgresNode::use_tcp is used on BSD systems
Date: 2021-04-20 14:59:32
Message-ID: 519ddb94-f3ac-e9cc-3a61-7003c26f62f8@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 4/19/21 7:22 PM, Tom Lane wrote:
> Alexey Kondratov <a(dot)kondratov(at)postgrespro(dot)ru> writes:
>> And this is an absolute true, on BSD-like systems (macOS and FreeBSD
>> tested) it hangs on looping through the entire ports range over and over
>> when $PostgresNode::use_tcp = 1 is set, since bind fails with:
> Hm.
>
>> That way, if it really could happen why not to just skip binding to
>> 127.0.0/24 addresses other than 127.0.0.1 outside of Linux/Windows as
>> per attached patch_PostgresNode.diff?
> That patch seems wrong, or at least it's ignoring the advice immediately
> above about binding to 0.0.0.0 only on Windows.
>
> I wonder whether we could get away with just replacing the $use_tcp
> test with $TestLib::windows_os. It's not really apparent to me
> why we should care about 127.0.0.not-1 on Unix-oid systems.
>
>

Yeah

The comment is a bit strange anyway - Cygwin is actually going to use
Unix sockets, not TCP.

I think I would just change the test to this: $use_tcp &&
$TestLib::windows_os.

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2021-04-20 15:02:03 Re: `make check` doesn't pass on MacOS Catalina
Previous Message Aleksander Alekseev 2021-04-20 14:57:55 `make check` doesn't pass on MacOS Catalina