Re: send returns EPIPE when requesting a large group
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
Re: send returns EPIPE when requesting a large group
- From: Jakub Hrozek <jhrozek [at] redhat.com>
- To: nss-pam-ldapd-users [at] lists.arthurdejong.org
- Subject: Re: send returns EPIPE when requesting a large group
- Date: Thu, 15 Mar 2012 11:10:42 +0100
On Wed, Mar 14, 2012 at 09:47:26PM +0100, Arthur de Jong wrote:
> On Tue, 2012-03-13 at 19:18 +0100, Jakub Hrozek wrote:
> > With EPIPE being quite a common and recoverable error, I was wondering
> > if it makese sense to special-case this error code and print the
> > message on a lower debug level?
>
> That is a possibility, but with the recent debian bug report
> (http://bugs.debian.org/660223) I started thinking a bit about the
> protocol and I think I came up with another solution. In commit r1637
> any data that is available for reading is read from the response stream
> before closing the connection.
This is much better and systematic solution.
>
> Since the connection is opened non-blocking only data that can be read
> without blocking is read which should limit the extra overhead or delay
> in the NSS module.
>
> This means that most calls that would normally result in a broken pipe
> message (either application called endent() before reading all results
> or there the buffer was too small to fit the group) should now not cause
> a broken pipe in most cases.
>
> The only cases I see remaining that could result in a broken pipe are
> for misbehaving applications that don't call endent() at all or when
> nslcd has more information to write than can be read without blocking by
> the NSS module. The first is a bug in the app and should deserve an
> error, I hope the second is unlikely to happen too often.
>
I agree.
I've backported the patch to to 0.7 branch and it works great. Thank you
very much!
--
To unsubscribe send an email to
nss-pam-ldapd-users-unsubscribe@lists.arthurdejong.org or see
http://lists.arthurdejong.org/nss-pam-ldapd-users/