Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alexander Kukushkin <cyberdemn(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection
Date: 2013-12-05 14:54:38
Message-ID: 15044.1386255278@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Alexander Kukushkin <cyberdemn(at)gmail(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alexander Kukushkin 2013-12-05 16:07:55 Re: Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection
Previous Message Alexander Kukushkin 2013-12-05 11:32:02 Re: BUG #8647: Backend process hangs and becomes unkillable when SSL client looses connection