Hi Philipp, 

Sorry for this really late reply, I forgot about the patch and my
intention to answer. Also I don't like this kind of answers as I know
how much work it is to build such a patch...

On Mon, Nov 17, 2003 at 10:51:10AM +0100, Philipp Matthias Hahn wrote:
> Torsten Landschoff wrote:
> >Thanks a lot for this diagnosis. Problem is that just removing that
> >EINTR check for that loop might help gnutls but could break other stuff.
> >So I think the work around is to clear errno in the tls functions at
> >least if errno == EINTR at entry. In the long term these EINTR checks
> >have to be moved but I guess that will take a bit longer :(
> 
> Attached is a patch which pushs the errno=EINTR check down to the read() 
> from stream/socket/... functions. I'm not yet 100% convinced that I 
> haven't missed anything. For example, I assumed gnutsl_read() uses 
> either the (fixed) sbi_read() or handles EINTR correctly itself. But my 
> selfcompiled slapd survived its first day without hanging.

The problem is that there is no documentation about the sockbuf wrappers
and therefore I don't know if using errno for error passing is not the
intended behaviour. I don't want to patch this just in Debian as it will
mean additional work for each new upstream version. 

> Since this bug is an upstrem bug, should I push it upstream or are you 
> going to do it? I hesitate to do it, because using gnutls is a Debian 
> specific thing.

That's exactly the core problem :( 2.2.23 in Debian does not use GnuTLS
for now but it will get reintroduced. OTOH I am looking at Mozilla NSS
currently as well.

2.2.23 has the same EINTR handling btw. 

> diff -urNp openldap-2.1.23/libraries/liblber/sockbuf.c 
> openldap-2.1.23.pmhahn/libraries/liblber/sockbuf.c

cool, I did not know the -p switch. Really helpful indead! :)

As the current slapd package 2.2.23 in experimental will use OpenSSL
this is not an issue for now but I'll forward this patch upstream
(updated for 2.2.23).

Greetings

        Torsten

Attachment: signature.asc
Description: Digital signature

Reply via email to