This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nscd/16878] New: nscd enters busy loop on long netgroup entry via nss_ldap of nslcd
- From: "siddhesh at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 28 Apr 2014 16:22:08 +0000
- Subject: [Bug nscd/16878] New: nscd enters busy loop on long netgroup entry via nss_ldap of nslcd
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=16878
Bug ID: 16878
Summary: nscd enters busy loop on long netgroup entry via
nss_ldap of nslcd
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: nscd
Assignee: siddhesh at redhat dot com
Reporter: siddhesh at redhat dot com
CC: drepper.fsp at gmail dot com
Description of problem:
If there's a long (>1024 bytes) netgroup entry retrieved via nslcd's nss_ldap,
nscd with netgroup caching enabled will enter a busy loop, hogging a CPU. Each
repetition causes another nscd thread to busy loop, consequently using up all
available CPU time.
This is because nss_ldap (correctly) returns NSS_STATUS_TRYAGAIN if the
provided buffer is not large enough to hold the result while nscd and the glibc
nss modules for netgroups expect and set NSS_STATUS_UNAVAIL respectively.
How reproducible:
always
Steps to Reproduce:
1. add long netgroup entry to LDAP
2. enable netgroup caching in nscd
3. getent netgroup longnetgroupentry
Actual results:
nscd thread enters busy loop, getent times out waiting for nscd and gets
netgroup data directly
Expected results:
nscd returns netgroup data
Patch coming up.
--
You are receiving this mail because:
You are on the CC list for the bug.