Обсуждение: Re: [GENERAL] fgets failure in Solaris after patching

Поиск
Список
Период
Сортировка

Re: [GENERAL] fgets failure in Solaris after patching

От
Tom Lane
Дата:
"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