From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8122 invoked by alias); 8 Jun 2011 09:11:41 -0000 Received: (qmail 8110 invoked by uid 22791); 8 Jun 2011 09:11:39 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,SARE_SUB_FOREVER,TW_GM,TW_YP X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 08 Jun 2011 09:11:26 +0000 From: "matthias.andree at gmx dot de" To: glibc-bugs@sources.redhat.com Subject: [Bug libc/430] nsswitch.conf doesn't support TRYAGAIN=forever, giving bogus results when NIS is not responding X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: libc X-Bugzilla-Keywords: X-Bugzilla-Severity: critical X-Bugzilla-Who: matthias.andree at gmx dot de X-Bugzilla-Status: REOPENED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: gotom at debian dot or.jp X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Wed, 08 Jun 2011 09:11:00 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org X-SW-Source: 2011-06/txt/msg00024.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=430 --- Comment #15 from Matthias Andree 2011-06-08 09:11:23 UTC --- Regarding errno (or result code of getpwnam_r()) checking, this still doesn't happen in glibc 2.11 (in violation of IEEE Std 1003.1 as of before this bug report) and is not portable. FreeBSD 8-STABLE leaves errno at 0 in temporary-failure-on-nis conditions (but retries for an extended but bounded amount of time). The Linux man-pages project effectively documents that there is no portable way to distinguish temporary errors from an authoritative "user does not exist" - which is likely why applications don't even bother. Several documentation inconsistencies even in glibc exist, for instance, the info file does not document errno use in getpwnam() at all, the external Linux man-pages project documents errno, but is probably not authoritative for glibc. An intesting practical consequence denying cron service is documented in https://bugs.launchpad.net/bugs/27520 - cron starts before ypbind and caches the getpwnam("someuser") == NULL result... this would not happen with TRYAGAIN=forever. Which leaves us with the solution I've requested in 2004, retry forever, for lack of better solutions. Perhaps POSIXLY_CORRECT could make a difference to this behaviour or the defaults, but the current sitation is the same as 7 years ago, other newer operating system versions are also still non-conformant, so that applications will continue to ignore errno when using getpwnam(). -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.