Howard Chu wrote:
jvcelak@redhat.com wrote:
Full_Name: Jan Vcelak Version: 2.4.29 OS: Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (209.132.186.34)
There is a possible regression caused by 06ec9f1db2bb9dc304a4adcd0d0506203cf9e6b6.
SSSD's event loop listens for events on a file descriptor retrieved using ber_sockbuf_ctrl(sb, LBER_SB_OPT_GET_FD,&ber_fd). If there are some data to be read, processing using ldap_result is triggered. (Internally, tevent from Samba project is used, which uses epoll.) But sometimes, ldap_result() returns -1 error code. It seems that the descriptor is marked as readable untimely.
This problem is not present with OpenLDAP 2.4.26, it appears with all future versions. When the mentioned commit is reverted, everything works well.
Original report in our Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=771484
Thanks for the report and the detailed investigation, but this sounds to me like a kernel bug. We expect select/epoll/whatever to only return that a descriptor is readable if it actually is readable. (Gosh, who'dathunkit.) If not, then these syscalls are not behaving as documented/designed.
By the way, the patch in question was due to ITS#7035; you should read that ITS for the motivation behind this change.