Date: Wed, 2 Jul 2003 19:20:11 +0200
;;; What system are you running on, and does it have a getaddrinfo()
;;; or not?
Red Hat Linux and Mac OS X 10.2.6. Both nm libc display getaddrinfo as follows:
$ nm /lib/libc.so.6 | grep getaddrinfo
0009fe3c T getaddrinfo
$
$ nm /usr/lib/libc.dylib | grep getaddrinfo
/usr/lib/libc.dylib(getaddrinfo.o):
90037dc0 T _getaddrinfo
U _getaddrinfo
$
;;; If I tell getaddrinfo() it should return a SOCK_DGRAM, it can
;;; only mean that getaddrinfo() is broken.
What value shuld be passed to a following socket call with addr->ai_socktype?
==== pgstats.c ====
if ((pgStatSock = socket(addr->ai_family,
addr->ai_socktype, addr->ai_protocol)) < 0)
{
elog(LOG, "PGSTAT: socket() failed: %m");
goto startup_failed;
}
Subject: Re: [HACKERS] PostgreSQL 7.4devel - LOG: PGSTAT: socket() failed: Invalid argument
Date: Wed, 2 Jul 2003 20:52:00 +0200
;;; > > It seems that a value of addr->ai_socktype returned by getaddrinfo in
;;; > > pg_stat.c is not SOCK_DGRAM.
;;; >
;;; > What do you base this on?
Red Hat Linux 6.2 base.
$ uname -rs
Linux 2.2.18-0ph1smp
$
For Mac OS X it produces LOG: PGSTAT: socket() failed: Protocol not supported.
;;; > My guess is that it returns an ipv6 address while you do not have
;;; > IPv6 support in the kernel. If that is the case, the attached
;;; > patch should fix it.
;;; >
;;;
;;; Oops typo, fixed in new attachment.
I tried it for current build.
Index: postmaster/pgstat.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/postmaster/pgstat.c,v
retrieving revision 1.37
diff -u -r1.37 pgstat.c
--- postmaster/pgstat.c 12 Jun 2003 07:36:51 -0000 1.37
/*
* Create the UDP socket for sending and receiving statistic messages
*/
- hints.ai_flags = AI_PASSIVE;
+ hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = 0;
$
And then:
$ postmaster (on Red Hat)
...
2003-07-03 10:19:38 [29761] LOG: XX000: PGSTAT: getaddrinfo2() failed: Name or service not known
LOCATION: pgstat_init, pgstat.c:193
...
Kenji Sugita
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings