Re: [GENERAL] fgets failure in Solaris after patching - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [GENERAL] fgets failure in Solaris after patching
Date
Msg-id 9403.1343417108@sss.pgh.pa.us
Whole thread Raw
List pgsql-hackers
"Stephan, Richard" <RStephan@nyiso.com> writes:
> More information (9.0.8):

> $ pg_ctl start
> Killed
> fgets failure: Error 0
> The program "postgres" is needed by pg_ctl but was not found in the
> same directory as "/opt/postgres/9.0/bin/pg_ctl".
> Check your installation.

> $ postgres -V
> ld.so.1: postgres: fatal: libc.so.1: version `SUNW_1.22.7' not found (required by file
/opt/postgres/9.0/bin/postgres)
> ld.so.1: postgres: fatal: /usr/lib/libc.so.1: wrong ELF class: ELFCLASS32
> Killed

Ah-hah, so your problem is a library mismatch between where you compiled
postgres and where you're trying to run it.

This is not the first time we've had to suggest that people run
"postgres -V" manually to debug a problem.  I see that find_other_exec()
intentionally routes the stderr output of that to /dev/null:

    snprintf(cmd, sizeof(cmd), "\"%s\" -V 2>%s", retpath, DEVNULL);

It strikes me that this is just a damfool idea.  Generally there should
be no stderr output, and if there is some, hiding it from the user is
not helpful.  Does anyone object to removing that redirection?

            regards, tom lane

pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Covering Indexes
Next
From: Robert Creager
Date:
Subject: Build failures with Mountain Lion