Обсуждение: [GENERAL] postgres source code function "internal_ping" may be not right insome conditions

Поиск
Список
Период
Сортировка
Hi,
 all.  I have test the function "internal_ping", and find in some conditions, the return result is not right.

the code, you can see :

if conn->status == CONNECTION_BAD  ,  and the  "conn->last_sqlstate" is "28000", the return value is PQPING_OK, it is not right.

Thanks,
 wln



 

Re: postgres source code function "internal_ping" may be not right in some conditions

От
Tom Lane
Дата:
lin <jluwln@163.com> writes:
>  all.  I have test the function "internal_ping", and find in some conditions, the return result is not right.

> if conn->status == CONNECTION_BAD  ,  and the  "conn->last_sqlstate" is "28000", the return value is PQPING_OK, it is
notright. 

I don't think so.  28000 is ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION,
which is a not-unlikely case here since often a caller wouldn't have
bothered to provide a valid userid.  However, if the server returned that,
then it must be up; otherwise it could not have looked into pg_authid
to find out that the supplied userid wasn't valid.

IOW, the point of the ping functionality is to test whether the server
is up, not whether you have valid login credentials.

            regards, tom lane