On Wed, Dec 12, 2007 at 12:30:50AM -0500, Tom Lane wrote:
> "Trevor Talbot" <quension@gmail.com> writes:
> > On 12/11/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> I dunno anything about how to fix the real problem (what's winsock error
> >> 10004?),
>
> > WSAEINTR, "A blocking operation was interrupted by a call to
> > WSACancelBlockingCall."
>
> Oh, then it's exactly the same thing as our bug #2829.
>
> I opined in that thread that OpenSSL was broken because it failed to
> treat this as a retryable case like EINTR. But not being much of a
> Windows person, that might be mere hot air. Someone with a Windows
> build environment should try patching OpenSSL to treat WSAEINTR
> the same as Unix EINTR and see what happens ...
When I last looked at this (and this was some time ago), I suspected (and
still do) that the problem is in the interaction between our
socket-emulation-stuff (for signals) and openssl. I'm not entirely sure,
but I wanted to rewrite the SSL code so that *our* code is responsible for
aclling the actuall send()/recv(), and not OpenSSL. This would also fix the
fact that if an OpenSSL network operation ends up blocking, that process
can't receive any signals...
I didn't have time to get this done before feature-freeze though, and I
beleive the changes are large enough to qualify as such..
//Magnus