Обсуждение: Call perror on popen failure

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

Call perror on popen failure

От
Daniel Gustafsson
Дата:
If popen fails in pipe_read_line we invoke perror for the error message, and
pipe_read_line is in turn called by find_other_exec which is used in both
frontend and backend code.  This is an old codepath, and it seems like it ought
to be replaced with the more common logging tools we now have like in the
attached diff (which also makes the error translated as opposed to now).  Any
objections to removing this last perror() call?

--
Daniel Gustafsson


Вложения

Re: Call perror on popen failure

От
Tom Lane
Дата:
Daniel Gustafsson <daniel@yesql.se> writes:
> If popen fails in pipe_read_line we invoke perror for the error message, and
> pipe_read_line is in turn called by find_other_exec which is used in both
> frontend and backend code.  This is an old codepath, and it seems like it ought
> to be replaced with the more common logging tools we now have like in the
> attached diff (which also makes the error translated as opposed to now).  Any
> objections to removing this last perror() call?

I didn't check your replacement code in detail, but I think we have
a policy against using perror, mainly because we can't count on it
to localize consistently with ereport et al.  My grep confirms this
is the only use, so +1 for removing it.

            regards, tom lane



Re: Call perror on popen failure

От
Peter Eisentraut
Дата:
On 08.03.24 11:05, Daniel Gustafsson wrote:
> If popen fails in pipe_read_line we invoke perror for the error message, and
> pipe_read_line is in turn called by find_other_exec which is used in both
> frontend and backend code.  This is an old codepath, and it seems like it ought
> to be replaced with the more common logging tools we now have like in the
> attached diff (which also makes the error translated as opposed to now).  Any
> objections to removing this last perror() call?

This change makes it consistent with other popen() calls, so it makes 
sense to me.




Re: Call perror on popen failure

От
Daniel Gustafsson
Дата:
> On 8 Mar 2024, at 18:08, Peter Eisentraut <peter@eisentraut.org> wrote:
>
> On 08.03.24 11:05, Daniel Gustafsson wrote:
>> If popen fails in pipe_read_line we invoke perror for the error message, and
>> pipe_read_line is in turn called by find_other_exec which is used in both
>> frontend and backend code.  This is an old codepath, and it seems like it ought
>> to be replaced with the more common logging tools we now have like in the
>> attached diff (which also makes the error translated as opposed to now).  Any
>> objections to removing this last perror() call?
>
> This change makes it consistent with other popen() calls, so it makes sense to me.

Thanks for review, committed that way.

--
Daniel Gustafsson