Thread: [GENERAL] postgres source code function "internal_ping" may be not right insome conditions
[GENERAL] postgres source code function "internal_ping" may be not right insome conditions
From
lin
Date:
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
From
Tom Lane
Date:
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