Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection
Date
Msg-id 15044.1386255278@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection  (Alexander Kukushkin <cyberdemn@gmail.com>)
Responses Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection
List pgsql-bugs
Alexander Kukushkin <cyberdemn@gmail.com> writes:
> After analysing source code of postgres and openssl I've found (at least I
> think) the reason why it is happening:
>
----------------------------------------------------------------------------------------------------------------------------
> static int
> my_sock_write(BIO *h, const char *buf, int size)
> {
>         int                     res = 0;

>         res = send(h->num, buf, size, 0);
>         if (res <= 0)
>         {
>                 if (errno == EINTR)
>                 {
>                         BIO_set_retry_write(h);
>                 }
>         }

>         return res;
> }

BTW, I was looking at that function the other day and thinking it was
wrong: if the send() returns exactly zero, it hasn't set errno has it?
But perhaps that case never arises.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Alexander Kukushkin
Date:
Subject: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection
Next
From: Alexander Kukushkin
Date:
Subject: Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection