Re: BUG #9003: Hard-coding to localhost in postmaster

From: Paul Morie <pmorie(at)redhat(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)2ndquadrant(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #9003: Hard-coding to localhost in postmaster
Date: 2014-01-28 19:46:52
Message-ID: 1241903739.14805210.1390938412164.JavaMail.root@redhat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Apologies: I should have explained more of the context in my original post to this list.
I work for Red Hat on OpenShift and discovered this while investigating error messages
in the postgres logs (the bug report in OpenShift: https://bugzilla.redhat.com/show_bug.cgi?id=1024676).
Since it impacts the autovacuum functionality for our users, I wanted to see if I could
get an upstream fix.

In OpenShift, user processes run inside a 'gear' - which has its own /etc/passwd entry,
selinux context, etc. Each gear user gets a 127.x.x.x loopback device to bind to so it
can all use the same ports like 8080 for web traffic, 5432 for postgres. That's only
possible if each gear gets its own unique loopback address. Binding to
localhost/127.0.0.1 is explicitly disallowed.

We are not currently using network namespaces in OpenShift because they were not available
in the RHEL kernel until 6.5 (released Nov 2013). Now that they're supported, using them
in OpenShift is one of our high-priority items.

Hope that clarifies why I would be interested in this option :)

Thanks,

Paul

----- Original Message -----
> From: "Bruce Momjian" <bruce(at)momjian(dot)us>
> To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
> Cc: "Andres Freund" <andres(at)2ndquadrant(dot)com>, "Paul Morie" <pmorie(at)redhat(dot)com>, pgsql-bugs(at)postgresql(dot)org
> Sent: Tuesday, January 28, 2014 11:19:00 AM
> Subject: Re: [BUGS] BUG #9003: Hard-coding to localhost in postmaster
>
> On Tue, Jan 28, 2014 at 11:15:54AM -0500, Tom Lane wrote:
> > Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > > On 2014-01-28 10:41:49 -0500, Paul Morie wrote:
> > >> The challenge we have in openshift is that we have multiple users on a
> > >> single node who all want to bind to the same port. To deal with this,
> > >> we forbid the users from binding to 127.0.0.1 using selinux and
> > >> allocate IPs for them to bind to.
> >
> > > Uhm. What about using network namespaces?
> >
> > > To me this really sounds like tackling things from the wrong
> > > end. Instead of fixing the infrastructure once this way you need to
> > > adapt various pieces of software in odd ways.
> >
> > Yeah. In particular, I'd always supposed that a platform that wanted
> > to use some other IP address than 127.0.0.1 for loopback would also be
> > expected to make sure that "localhost" mapped to that other IP address.
> > Otherwise, there simply isn't any way to make network-using software
> > work except random hacks.
> >
> > Frankly, I don't think you're going to get any cooperation from Postgres
> > in adapting to such a broken networking environment as this, and I doubt
> > other upstreams are going to be any more positive about it.
>
> Also, certainly other users are using Postgres and Openshift. What is
> different about your environment? Is it some new feature of Openshift?
>
> --
> Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
> EnterpriseDB http://enterprisedb.com
>
> + Everyone has their own god. +
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2014-01-28 19:51:46 Re: BUG #9003: Hard-coding to localhost in postmaster
Previous Message markella.skempri 2014-01-28 17:52:29 BUG #9010: partition by overrides order by in window functions