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: Arthur de Jong <arthur [at] arthurdejong.org>
- To: nss-pam-ldapd-users [at] lists.arthurdejong.org
- Subject: Re: send returns EPIPE when requesting a large group
- Date: Wed, 14 Mar 2012 21:47:26 +0100
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.
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.
Thanks,
--
-- arthur - arthur@arthurdejong.org - http://arthurdejong.org --
--
To unsubscribe send an email to
nss-pam-ldapd-users-unsubscribe@lists.arthurdejong.org or see
http://lists.arthurdejong.org/nss-pam-ldapd-users/