localhost redux
I've been having a problem with the pgstat.c localhost change since 7.4,
in that statistics gathering stopped working on my gentoo boxes. I've
not traced it back beyond getaddrinfo called in getaddrinfo_all, and
decided the quick fix was to go back and change pgstat to use 127.0.0.1
instead of localhost.
I don't know if the problem is isolated to just me, but I wanted to
suggest that we use a parameter for that, which can be configured in the
postgresql.conf, with a default value if it's not set, set to
localhost. I'd be happy to write a patch that follows this behavior but
wanted to see if everyone agrees with that line of thinking before doing so.
Gavin
"Gavin M. Roy" <gmr@ehpg.net> writes:
I've been having a problem with the pgstat.c localhost change since 7.4,
in that statistics gathering stopped working on my gentoo boxes. I've
not traced it back beyond getaddrinfo called in getaddrinfo_all, and
decided the quick fix was to go back and change pgstat to use 127.0.0.1
instead of localhost.
I don't know if the problem is isolated to just me, but I wanted to
suggest that we use a parameter for that, which can be configured in the
postgresql.conf, with a default value if it's not set, set to
localhost.
I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?
regards, tom lane
I have no problem resolving localhost anywhere else on the box, do you
have any suggestions on finding out if it's a misconfiguration?
Gavin
Tom Lane wrote:
Show quoted text
"Gavin M. Roy" <gmr@ehpg.net> writes:
I've been having a problem with the pgstat.c localhost change since 7.4,
in that statistics gathering stopped working on my gentoo boxes. I've
not traced it back beyond getaddrinfo called in getaddrinfo_all, and
decided the quick fix was to go back and change pgstat to use 127.0.0.1
instead of localhost.I don't know if the problem is isolated to just me, but I wanted to
suggest that we use a parameter for that, which can be configured in the
postgresql.conf, with a default value if it's not set, set to
localhost.I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?regards, tom lane
"Gavin M. Roy" <gmr@ehpg.net> writes:
I have no problem resolving localhost anywhere else on the box, do you
have any suggestions on finding out if it's a misconfiguration?
In that case maybe we have a bug to fix; but that makes me even less
eager to "solve" it by substituting 127.0.0.1 ...
regards, tom lane
I don't know if the problem is isolated to just me, but I wanted to
suggest that we use a parameter for that, which can be configured in the
postgresql.conf, with a default value if it's not set, set to
localhost.I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?
The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts. So if your nameservice does not have localhost ...
Same for `hostname`, if nameservice does not resolve `hostname` ...
Andreas
Import Notes
Resolved by subject fallback
Gavin M. Roy wrote:
I have no problem resolving localhost anywhere else on the box, do you
have any suggestions on finding out if it's a misconfiguration?
Gavin
Are you the users on IRC yesterday night ? He had the same problem, however
he/she had the GUC variable stats_start_collector equal to "on" in the
configuration file but was shown as "off" with a SHOW stats_start_collector
inside a psql section.
That GUC variable is resetted to off is the collector doesn't start ?
Regards
Gaetano Mendola
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?
The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts.
Wouldn't that break many other programs besides Postgres? But in any
case if your nameserver doesn't resolve localhost, I'd say you'd better
fix your nameserver. See eg, http://www.faqs.org/rfcs/rfc2606.html
The ".localhost" TLD has traditionally been statically defined in
host DNS implementations as having an A record pointing to the
loop back IP address and is reserved for such use. Any other use
would conflict with widely deployed code which assumes this use.
regards, tom lane
Tom Lane wrote:
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts.Wouldn't that break many other programs besides Postgres?
Maybe not many use getaddrinfo()
But in any
case if your nameserver doesn't resolve localhost, I'd say you'd better
fix your nameserver. See eg, http://www.faqs.org/rfcs/rfc2606.htmlThe ".localhost" TLD has traditionally been statically defined in
host DNS implementations as having an A record pointing to the
loop back IP address and is reserved for such use. Any other use
would conflict with widely deployed code which assumes this use.
If localhost isn't being resolved correctly are you seeing error
messages like this on the server log (from pqcomm.c)?
"could not translate host name \"%s\", service \"%s\" to address: %s"
Of course, using -i or -h "*" on the postmaster would inhibit that, but
you would expect it in the default setup if localhost resolution fails.
cheers
andrew
If localhost isn't being resolved correctly are you seeing error
messages like this on the server log (from pqcomm.c)?"could not translate host name \"%s\", service \"%s\" to
address: %s"
After poking around, I found the following:
The Windows pdc (==name server :-( ) does really not resolve localhost (this might
be common for Windows nameservers). I do not have a services entry for 5432,
and don't have a dns record for this RS6000.
LOG: could not translate service "5432" to address: Host not found
WARNING: could not create listen socket for "*"
LOG: could not bind socket for statistics collector: Can't assign requested address
Setting to a port, that is listed in /etc/services does not change anything
(except the port of course).
I do not have those problems on a machine where dns lists the machine and localhost.
This machine has a long obsolete oslevel 4.3.2, so am not sure it is worth pursuing
the issue. I only wanted to state, that it does not work here under certain cirumstances
eighter.
Andreas
Import Notes
Resolved by subject fallback
Yeah, I was talking about it on freenode yesterday. If the stats
collector doesn't start, the internal variable is set to off.
Gavin
Gaetano Mendola wrote:
Show quoted text
Gavin M. Roy wrote:
I have no problem resolving localhost anywhere else on the box, do
you have any suggestions on finding out if it's a misconfiguration?
GavinAre you the users on IRC yesterday night ? He had the same problem,
however
he/she had the GUC variable stats_start_collector equal to "on" in the
configuration file but was shown as "off" with a SHOW
stats_start_collector
inside a psql section.That GUC variable is resetted to off is the collector doesn't start ?
Regards
Gaetano Mendola
On Tue, Jul 20, 2004 at 08:32:00AM -0400, Tom Lane wrote:
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
I think you should first trace down what the problem really is --- is
your system just misconfigured or is there some fundamental issue that
we really ought to answer to?The trouble on AIX is, that getaddrinfo only does a nameservice lookup,
no /etc/hosts.Wouldn't that break many other programs besides Postgres? But in any
case if your nameserver doesn't resolve localhost, I'd say you'd better
fix your nameserver. See eg, http://www.faqs.org/rfcs/rfc2606.htmlThe ".localhost" TLD has traditionally been statically defined in
host DNS implementations as having an A record pointing to the
loop back IP address and is reserved for such use. Any other use
would conflict with widely deployed code which assumes this use.
There is no requirement for a recursive resolver (local nameserver) to
have localhost hardwired to return 127.0.0.1. It's not even clearly a
good idea in all cases. If, though, the resolver returns anything for
localhost it must be 127.0.0.1 (or, presumably, ::127.0.0.1).
While many recursive resolvers do have localhost hardwired (to avoid
this sort of issue) relying on it may be overly brave.
It would be nice if the OP could check their recursive resolver to see
what it is returning for a query for localhost ('dig @<nameserver> localhost',
where <nameserver> is the nameserver listed in /etc/resolv.conf), just to
check whether the DNS vs non-DNS localhost thing is an issue at all. Also
whether they have /etc/netsvc.conf (IIRC) configured to use /etc/hosts
or not.
getaddrinfo() has had strange and unusual bugs on some older versions of
AIX, anyway, so it may not be a DNS issue at all.
Cheers,
Steve