Bug 201972 - autofs compatilibity issue between nsswitch and NIS+ server
Summary: autofs compatilibity issue between nsswitch and NIS+ server
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: autofs
Version: 3.8
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Jeff Moyer
QA Contact: Brock Organ
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-08-10 02:04 UTC by hyunmo kang
Modified: 2018-10-19 20:31 UTC (History)
3 users (show)

Fixed In Version: RHBA-2007-0416
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-06-11 18:45:49 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2007:0416 0 normal SHIPPED_LIVE autofs bug fix update 2007-06-07 22:32:15 UTC

Description hyunmo kang 2006-08-10 02:04:42 UTC
Description of problem:

autofs init script fails when nsswitch is called

yp_order function call in nsswitch is not working in our environment where yp 
is bound to NIS+ server running in compat mode.
(http://docs.sun.com/app/docs/doc/816-0214/6m6nf1pbg?a=view)

i have created a patch and it looks working fine anyway.
( still got the same error message when yp_order is called :( )

yp_master function is called right after yp_order call fails to check yp map 
is available under the mentioned situation.

i'm not sure whether yp_order call itself can be replaced with yp_master call 
or not but it seems possible.

Version-Release number of selected component (if applicable):


How reproducible:
always when yp is bound to NIS+ server running in compatibility mode

Steps to Reproduce:
1. #/usr/lib64/autofs/nsswitch auto_master
  
Actual results:
do_ypcall: clnt_call: RPC: Procedure unavailable
do_ypcall: clnt_call: RPC: Procedure unavailable


Expected results:
yp:auto_master

Additional info:
following patch is created after rpmbuild -bp autofs.spec

--- autofs-4.1.3/lib/nsswitch.c.orig	2006-08-09 16:44:08.000000000 +0900
+++ autofs-4.1.3/lib/nsswitch.c	2006-08-09 16:58:53.000000000 +0900
@@ -15,6 +15,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <rpcsvc/ypclnt.h>
+#include <rpc/types.h>
 #include "automount.h"
 
 #define MODPREFIX "nsswitch: "
@@ -204,6 +205,9 @@ static int isypmap(const char *loc)
 		return 0;
 	}
 	if ((err = yp_order(domainname, loc, &order)) != YPERR_SUCCESS) {
+		char hostname[MAXHOSTNAMELEN+1];
+		if ((err = yp_master(domainname, loc, (char**)&hostname)) == 
YPERR_SUCCESS)
+			return 1;
 		debug(MODPREFIX "unable to find map, %s in domain, %s",
 		      loc, domainname);
 		return 0;

Comment 1 Jeff Moyer 2006-08-11 13:59:36 UTC
Thanks for the problem report and the patch.  You've got a bug in that patch,
though.  yp_master expects a char **, true, but it fills that in via strdup. 
So, you really want something like:

char *hostname;

if ((err = yp_master(domainname, loc, &hostname) == YPERR_SUCCESSS) {
        free(hostname);
        return 1;
}

I'll fix this up and queue it.  The way it's written, it is pretty safe to
include, I think.  This is a regression from previous versions of autofs, right?

It's strange that yp_order isn't supported by your nisplus implementation.  Be
sure to file a bug there, too!

Comment 2 hyunmo kang 2006-08-13 23:36:26 UTC
thanks for the additional work ! :)

i'm afraid that they are not going to fix this because they've already 
specified "This function is not supported if the ypbind process on the 
client's system is bound to an NIS+ server running in "YP-compatibility 
mode.""(quoted from the link) and that is exactly what our configuration is :(



Comment 4 RHEL Program Management 2006-12-12 16:58:40 UTC
This bugzilla has Keywords: Regression.  

Since no regressions are allowed between releases, 
it is also being proposed as a blocker for this release.  

Please resolve ASAP.

Comment 7 Jeff Moyer 2007-01-12 01:13:52 UTC
A fix for this bug will be available in autofs packages versioned 4.1.3-201 and
later.

Comment 12 Red Hat Bugzilla 2007-06-11 18:45:50 UTC
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/RHBA-2007-0416.html



Note You need to log in before you can comment on or make changes to this bug.