Re: [HACKERS] could not create IPv6 socket (AI_ADDRCONFIG)

2014-02-04 Thread Alvaro Herrera
Tom Lane wrote:
 Kyotaro HORIGUCHI horiguchi.kyot...@lab.ntt.co.jp writes:
  Hello, I have often seen inquiries about an log message from
  PostgreSQL server.
  LOG:  could not create IPv6 socket: Address family not supported by 
  protocol
 
 That's merely a harmless log message.


 If we're concerned about users worrying about log messages from
 this, I'd rather see us downgrade those log messages to DEBUG level
 than risk breaking the code with behaviors that were proven to be
 a bad idea a decade ago.  But TBH I see no strong need to do anything
 here.

How about just adding a HINT?

-- 
Álvaro Herrerahttp://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training  Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] could not create IPv6 socket (AI_ADDRCONFIG)

2014-02-04 Thread Tom Lane
Alvaro Herrera alvhe...@2ndquadrant.com writes:
 Tom Lane wrote:
 Kyotaro HORIGUCHI horiguchi.kyot...@lab.ntt.co.jp writes:
 Hello, I have often seen inquiries about an log message from
 PostgreSQL server.
 LOG:  could not create IPv6 socket: Address family not supported by protocol

 That's merely a harmless log message.

 How about just adding a HINT?

Hmm ... maybe, but how would you phrase the hint exactly?

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] could not create IPv6 socket (AI_ADDRCONFIG)

2014-02-04 Thread Kyotaro HORIGUCHI
Hello,

At Tue, 04 Feb 2014 02:07:08 -0500, Tom Lane t...@sss.pgh.pa.us wrote in 
3176.1391497...@sss.pgh.pa.us
 One good reason not to trust this too much is that getaddrinfo() is
 fundamentally a userspace DNS access function, and as such it has
 no very good way to know if there's currently an IPv4 or IPv6
 interface configured on the local system.  At minimum there are
 obvious race conditions in that.

A case which would be more common is ::1 in /etc/hosts. I had
following error with this patch for such a case.

| LOG:  could not bind IPv4 socket: Address already in use
| HINT:  Is another postmaster already running on port 5432? If not, wait a few 
seconds and retry.

getaddrinfo returned two same entries having the same address
AF_INET 127.0.0.1:14357. One of them is for ::1 in
hosts. This is worse than current behavior X-(

At Tue, 04 Feb 2014 10:31:03 -0500, Tom Lane t...@sss.pgh.pa.us wrote in 
12552.1391527...@sss.pgh.pa.us
 Alvaro Herrera alvhe...@2ndquadrant.com writes:
  Tom Lane wrote:
  Kyotaro HORIGUCHI horiguchi.kyot...@lab.ntt.co.jp writes:
  LOG:  could not create IPv6 socket: Address family not supported by 
  protocol
 
  That's merely a harmless log message.
 
  How about just adding a HINT?
 
 Hmm ... maybe, but how would you phrase the hint exactly?

Putting the 'exactly' aside, is it something means 'You will get
this message when the feature to handle the address family is
disabled', only for EAFNOSUPPORT ?

 Though I don't know whether such a hint is helpful for those who
tend to mind that kind of message.

regards,

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] could not create IPv6 socket (AI_ADDRCONFIG)

2014-02-04 Thread Tom Lane
Kyotaro HORIGUCHI horiguchi.kyot...@lab.ntt.co.jp writes:
 getaddrinfo returned two same entries having the same address
 AF_INET 127.0.0.1:14357. One of them is for ::1 in
 hosts. This is worse than current behavior X-(

Yeah, the fundamental issue is that getaddrinfo tends to return bogus
info.

 How about just adding a HINT?

 Hmm ... maybe, but how would you phrase the hint exactly?

 Putting the 'exactly' aside, is it something means 'You will get
 this message when the feature to handle the address family is
 disabled', only for EAFNOSUPPORT ?

  Though I don't know whether such a hint is helpful for those who
 tend to mind that kind of message.

I still think the best thing might be to reduce the individual messages
to DEBUG-something, and only produce a LOG entry if we are unable to
bind to *any* of the addresses returned by getaddrinfo.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] could not create IPv6 socket (AI_ADDRCONFIG)

2014-02-03 Thread Tom Lane
Kyotaro HORIGUCHI horiguchi.kyot...@lab.ntt.co.jp writes:
 Hello, I have often seen inquiries about an log message from
 PostgreSQL server.
 LOG:  could not create IPv6 socket: Address family not supported by protocol

That's merely a harmless log message.

 - hints.ai_flags = AI_PASSIVE;
 + hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;

This, on the other hand, might actively break things.  It did when we
had it in before (cf the thread you link to and commit df63503dc).
I don't have any faith that systems on which it is broken have vanished
from the face of the earth.

One good reason not to trust this too much is that getaddrinfo() is
fundamentally a userspace DNS access function, and as such it has
no very good way to know if there's currently an IPv4 or IPv6
interface configured on the local system.  At minimum there are
obvious race conditions in that.

If we're concerned about users worrying about log messages from
this, I'd rather see us downgrade those log messages to DEBUG level
than risk breaking the code with behaviors that were proven to be
a bad idea a decade ago.  But TBH I see no strong need to do anything
here.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers