Red Hat Bugzilla – Bug 152467
nss_db doesn't set errno to ENOENT when returning NSS_STATUS_NOTFOUND
Last modified: 2007-11-30 17:06:54 EST
Created attachment 112426 [details]
set errno when an entry is not found
Description of problem:
nss_db is inordinately slow when entries are not found. I patched it to set
errnop to ENOENT when returning NSS_STATUS_NOTFOUND and it fixed the problem
according to the customer.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. create a very large passwd db (> 10k entries)
2. edit nsswitch.conf to check db first
3. search for an entry that's in files, not db (using id or getent)
takes 3 minutes to return
much faster result
I was unable to reproduce this in the first place, but the customer who reported
it says the patched nss_db which sets errnop fixes it.
Closed as "notabug"?
It's a bug under RHEL2.1, even if it isn't a problem in future releases
(apparently due to glibc updates)... unless you've got a glibc update that fixes
I suspect this is also an issue in RHEL3. I am offsite and cannot verify that
I'm going to reopen this; if it was intentionally closed please provide an
explanation. My guess is it was a mis-click or similar.
Now that the confusion about the cause of (and fix for) this problem has been
cleared up we need to push like hell to get it into U7 or it's down the drain
I personally haven't seen this problem at all under RHEL3, but of course, glibc
there is a completely different beast. I suspect the problem isn't in RHEL3
because of changes/fixes in glibc that've never made it back to the glibc in RHEL2.
Didn't Update 7 already come out last week?
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.