Red Hat Bugzilla – Bug 142617
[RHEL3] libc's getXXent and getXXbyYY are inefficient for large groups
Last modified: 2007-11-30 17:07:05 EST
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-
How reproducible: Every time.
Steps to Reproduce:
1. Create a large ldap group (10000 users)
2. run "getent group biggroup"
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
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.