Problem with listen_addresses = '*' on 8.4beta2 on AIX - Mailing list pgsql-hackers

From Albe Laurenz
Subject Problem with listen_addresses = '*' on 8.4beta2 on AIX
Date
Msg-id D960CB61B694CF459DCFB4B0128514C202FF6640@exadv11.host.magwien.gv.at
Whole thread Raw
Responses Re: Problem with listen_addresses = '*' on 8.4beta2 on AIX  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Building 8.4beta2 on my AIX test machine works fine,
but when I set listen_addresses = '*' in postgresql.conf,
the server fails to start.

This is what I get:

LOG:  00000: could not translate service "5432" to address: Hostname and service name not provided or found
LOCATION:  StreamServerPort, pqcomm.c:294
WARNING:  01000: could not create listen socket for "*"
LOCATION:  PostmasterMain, postmaster.c:843
FATAL:  XX000: could not create any TCP/IP sockets
LOCATION:  PostmasterMain, postmaster.c:848

It works fine if listen_addresses is the empty string or the hostname,
only with the asterisk it seems to fail.

These are the relevant entries in postgresql.conf:

listen_addresses = '*'
port = 5432

Relevant parts of pg_config:

CONFIGURE = '--prefix=/postgres/8.4' '--with-includes=/usr/local/include' '--with-libraries=/usr/local/lib'
'--enable-debug''--enable-cassert' '--with-ldap' '--without-readline' '--enable-integer-datetimes' '--without-zlib'
'--enable-thread-safety''CC=gcc -maix64' 'LDFLAGS=-Wl,-bbigtoc'
 
CC = gcc -maix64
CPPFLAGS = -I/usr/local/include
CFLAGS = -O0 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -fno-strict-aliasing -g
CFLAGS_SL = 
LDFLAGS = -Wl,-bbigtoc -L/usr/local/lib -Wl,-blibpath:/postgres/8.4/lib:/usr/local/lib:/usr/lib:/lib
LDFLAGS_SL = -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
LIBS = -lpgport -lld -lm 
VERSION = PostgreSQL 8.4beta2

The operating system is AIX 5.3 ML 03.


This change must have broken the code:
http://archives.postgresql.org/pgsql-committers/2009-01/msg00297.php

If listen_addresses is *, then getaddrinfo() will be called with
NULL for both the first and the second argument, which is not allowed
according to the documentation:

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.commtechref/doc/commtrf2/getaddrinfo.htm
and should and does return EAI_NONAME = 8.

I guess that the buildfarm did not fail because it does not use '*'.

Yours,
Laurenz Albe

pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: page is uninitialized --- fixing
Next
From: Simon Riggs
Date:
Subject: Re: Multicolumn index corruption on 8.4 beta 2