In 5.0.5-74 home directories were mounted with a config like:<br />
<br />
/home multi /etc/auto.home.override -- ldap:ldapserver:ou=auto.home,dc=ourcompany,dc=com<br />
<br />
Everything worked, but upgrading to 5.0.5-109 breaks all homedirs.<br />
<br />
A sample LDAP DN in that OU is:<br />
<br />
dn: cn=phild,ou=auto.home,dc=ourcompany,dc=com<br />
cn: phild<br />
objectClass: automount<br />
automountInformation: -rw,soft,timeo=100,intr,sec=sys,nosharecache,context=use<br />
r_u:object_r:user_home_dir_t homedirs.ourcompany.com:/vol/home109/phild<br />
<br />
The logs show things like:<br />
<br />
May 5 21:13:11 dev23 automount[3381691]: key "phild" not found in map source(s).<br />
May 5 21:14:29 dev23 automount[3381691]: key "phild" not found in map source(s).<br />
<br />
If we turn on debugging we get:<br />
<br />
May 5 14:10:01 dev23 automount[2878480]: handle_packet: type = 3<br />
May 5 14:10:01 dev23 automount[2878480]: handle_packet_missing_indirect: token 148575, name phild, request pid 2886823<br />
May 5 14:10:01 dev23 automount[2878480]: attempting to mount entry /home/phild<br />
May 5 14:10:01 dev23 automount[2878480]: lookup_mount: lookup(file): looking up phild<br />
May 5 14:10:01 dev23 automount[2878480]: lookup_mount: lookup(ldap): looking up phild<br />
May 5 14:10:01 dev23 automount[2878480]: ioctl_send_fail: token = 148575<br />
May 5 14:10:01 dev23 automount[2878480]: failed to mount /home/phild<br />
<br />
If I force foreground with debug, I get some more data:<br />
<br />
handle_packet: type = 3<br />
handle_packet_missing_indirect: token 151136, name phild, request pid 3402728<br />
attempting to mount entry /home/phild<br />
lookup_mount: lookup(file): looking up phild<br />
lookup_mount: lookup(ldap): looking up phild<br />
do_bind: lookup(ldap): auth_required: 1, sasl_mech (null)<br />
do_bind: lookup(ldap): ldap simple bind returned 0<br />
get_query_dn: lookup(ldap): query succeeded, no matches for (objectclass=nisMap)<br />
get_query_dn: lookup(ldap): query succeeded, no matches for (objectclass=automountMap)<br />
get_query_dn: lookup(ldap): query succeeded, no matches for (objectclass=automountMap)<br />
lookup(ldap): failed to find valid query dn<br />
lookup(ldap): lookup for phild failed: connection failed<br />
key "phild" not found in map source(s).<br />
ioctl_send_fail: token = 151136<br />
failed to mount /home/phild<br />
<br />
<br />
Comparing this with the old, working version, it looks very different:<br />
<br />
do_bind: lookup(ldap): auth_required: 1, sasl_mech (null)<br />
do_bind: lookup(ldap): ldap simple bind returned 0<br />
get_query_dn: lookup(ldap): found query dn ou=auto.home,dc=ourcompany,dc=com<br />
read_one_map: lookup(ldap): searching for "(objectclass=automount)" under "ou=auto.home,dc=ourcompany,dc=com"<br />
do_get_entries: lookup(ldap): examining entries<br />
do_get_entries: lookup(ldap): failed to get next entry for query (objectclass=automount)<br />
read_one_map: lookup(ldap): done updating map<br />
<br />
And then at the mount from the older, working, version:<br />
<br />
handle_packet: type = 3<br />
handle_packet_missing_indirect: token 930257, name phild, request pid 1946966<br />
attempting to mount entry /home/phild<br />
lookup_mount: lookup(file): looking up phild<br />
lookup_mount: lookup(ldap): looking up phild<br />
do_bind: lookup(ldap): auth_required: 1, sasl_mech (null)<br />
do_bind: lookup(ldap): ldap simple bind returned 0<br />
lookup_one: lookup(ldap): searching for "(&(objectclass=automount)(|(cn=phild)(cn=/)(cn=\2A)))" under "ou=auto.home,dc=ourcompany,dc=com"<br />
lookup_one: lookup(ldap): getting first entry for cn="phild"<br />
lookup_one: lookup(ldap): examining first entry<br />
lookup_mount: lookup(ldap): phild -> -rw,soft,timeo=100,intr,sec=sys,nosharecache,context=user_u:object_r:user_home_dir_t homedirs.ourcompany.com:/vol/home109/phild<br />
parse_mount: parse(sun): expanded entry: -rw,soft,timeo=100,intr,sec=sys,nosharecache,context=user_u:object_r:user_home_dir_t homedirs.ourcompany.com:/vol/home109/phild<br />
parse_mount: parse(sun): gathered options: rw,soft,timeo=100,intr,sec=sys,nosharecache,context=user_u:object_r:user_home_dir_t<br />
parse_mount: parse(sun): dequote("homedirs.ourcompany.com:/vol/home109/phild") -> homedirs.ourcompany.com:/vol/home109/phild<br />
parse_mount: parse(sun): core of entry: options=rw,soft,timeo=100,intr,sec=sys,nosharecache,context=user_u:object_r:user_home_dir_t, loc=homedirs.ourcompany.com:/vol/home109/phild<br />
<br />
Downgrading the RPM enables homedirectories to start working again, so the config is still the same. Verified nsswitch.conf, nscld.conf, nscd.conf, ldap.conf, /etc/sysconfig/autofs are all the same, and removed autofs.conf (since it didn't exist in CentOS6.3). Also tried setting up autofs.conf to have the same data as /etc/sysconfig/autofs but that didn't solve the problem either.<br />
<br />
Something in the CentOS6.6 RPM seems to break home directories in an OU in LDAP.
↧