Re: [BUGS] BUG #13793: Please implement IP_FREEBIND option

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Christoph Berg <myon(at)debian(dot)org>
Cc: tomek(at)pipebreaker(dot)pl, Sebastian Elisa Pfeifer <s(dot)pfeifer(at)ixolit(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: [BUGS] BUG #13793: Please implement IP_FREEBIND option
Date: 2018-09-10 13:47:47
Message-ID: 9118.1536587267@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Christoph Berg <myon(at)debian(dot)org> writes:
> http://man7.org/linux/man-pages/man7/ip.7.html

> IP_FREEBIND (since Linux 2.4)
> If enabled, this boolean option allows binding to an IP
> address that is nonlocal or does not (yet) exist. This per‐
> mits listening on a socket, without requiring the underlying
> network interface or the specified dynamic IP address to be up
> at the time that the application is trying to bind to it.
> This option is the per-socket equivalent of the ip_nonlo‐
> cal_bind /proc interface described below.

> This had been requested in 2015 in bug #13793. I think it makes sense
> to support this. Especially with IPv6, it is very common that
> addresses are not yet assigned when services are starting. (I don't
> know yet if other OSes support this option as well.)

That man page says specifically that it's Linux-only, although that
shouldn't stop us from using it to solve a Linux-specific problem
(which systemd is, AFAIK).

> Do we want that in PostgreSQL?

IIRC, the main concern expressed previously is that this would completely
defeat error checking on the listen_addresses parameter. However, that
doesn't apply if said parameter is "*". Would there be any sense in
applying IP_FREEBIND only for "*"?

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Christoph Berg 2018-09-10 14:03:01 Re: [BUGS] BUG #13793: Please implement IP_FREEBIND option
Previous Message Christoph Berg 2018-09-10 13:33:09 Re: [BUGS] BUG #13793: Please implement IP_FREEBIND option