Обсуждение: Bogus cleanup code in GSSAPI/SSPI patch

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

Bogus cleanup code in GSSAPI/SSPI patch

От
Tom Lane
Дата:
Hi Magnus, Would you take a look at the patch I just committed in fe-connect.c?

I found out today that PQreset() wasn't working on a GSSAPI connection,
because closePGconn hadn't been patched to clear out the GSSAPI state
(resulting in "duplicate GSS authentication request" failure).  I think
I fixed that but it wouldn't be bad for someone who knows that code
better to double-check.  Also, I can't test the ENABLE_SSPI case,
so that needs to be looked at.

The test case I've been using is to "select 1;" in psql, then kill -9
the backend from another window, then "select 1;" again.  psql should
recover and reconnect successfully.
        regards, tom lane


Re: Bogus cleanup code in GSSAPI/SSPI patch

От
Magnus Hagander
Дата:
On Mon, Jan 28, 2008 at 09:11:31PM -0500, Tom Lane wrote:
> Hi Magnus,
>   Would you take a look at the patch I just committed in fe-connect.c?
> 
> I found out today that PQreset() wasn't working on a GSSAPI connection,
> because closePGconn hadn't been patched to clear out the GSSAPI state
> (resulting in "duplicate GSS authentication request" failure).  I think
> I fixed that but it wouldn't be bad for someone who knows that code
> better to double-check.  Also, I can't test the ENABLE_SSPI case,
> so that needs to be looked at.
> 
> The test case I've been using is to "select 1;" in psql, then kill -9
> the backend from another window, then "select 1;" again.  psql should
> recover and reconnect successfully.

Looks good from here.

As for the SSPI case, it actually recovered just fine with SSPI before this
patch - from how I read it there was a memory leak, though. 

And I can confirm that it still works after this patch.

//Magnus