Description of problem: The getent utility starts off with a buffer size of 1K when doing queries. If the group is larger than 1K, nss returns an ERANGE and the getent routine increases the buffer by 1K and tries again. Very large groups (1000's or users) can cause many round trips between libc and the nss module while it's trying to resize the buffer. Version-Release number of selected component (if applicable): glibc-common- 2.3.2-95.27 How reproducible: Every time. Steps to Reproduce: 1. Create a large ldap group (10000 users) 2. run "getent group biggroup" 3. wait.... Actual results: It's very slow Expected results: It should only be somewhat slow. Additional info: The number of round trips could be greatly reduced if getent doubled the buffer everytime, rather than increasing by only 1K.
Should be fixed in glibc-2.3.3-91 and above in rawhide and hopefully will make it into RHEL4 glibc too. For RHEL3 this is maybe U5 material.
This patch is in RHEL4 glibc, so this bug is now RHEL3 only about the backport.
Fix added to glibc-2.3.2-95.31, for the time being available from ftp://people.redhat.com/jakub/glibc/2.3.2-95.31/
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-256.html