[Date Prev][Date Next] [Chronological] [Thread] [Top]

slapd failed to write to its client (ITS#910)



Full_Name: Voradesh Yenbut
Version: 2.0.7
OS: FreeBSD 3.3
URL: ftp://ftp.openldap.org/incoming/yenbut-001128.patch
Submission from: (NULL) (128.95.2.204)


I have an object, objectclass groupOfUniqueNames, set up with 400+ members.
The slapd process either fails to send data or repeatedly sends data when
the object is retrieved by ldapsearch.

It appears slapd failed in ber_pvt_sb_do_write() of sockbuf.c
when it could not write the entire buffer out so "return -1"
in the code fragment below is invoked.

        buf_out->buf_ptr += ret;
        if (buf_out->buf_ptr == buf_out->buf_end)
                buf_out->buf_end = buf_out->buf_ptr = 0;
        if ( (ber_len_t)ret < to_go )
                /* not enough data, so pretend no data was sent. */
                return -1;

Also in ber_pvt_sb_do_write(), when debugging is turned off and
slapd runs faster, an error condition EAGAIN consistently appears.
Try sending the data again seems to work okay.