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
signature.asc
Description: Digital signature