Problem with listen_addresses = '*' on 8.4beta2 on AIX

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: <pgsql-hackers(at)postgresql(dot)org>, <ac(at)esilo(dot)com>
Subject: Problem with listen_addresses = '*' on 8.4beta2 on AIX
Date: 2009-06-09 15:57:31
Message-ID: D960CB61B694CF459DCFB4B0128514C202FF6640@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2009-06-09 16:00:02 page is uninitialized --- fixing
Previous Message Tom Lane 2009-06-09 15:35:21 Re: [Fwd: Re: dblink patches for comment]