Bug 187852 - udev wait to connect ldap on boot but ldap is not start before udev
udev wait to connect ldap on boot but ldap is not start before udev
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: udev (Show other bugs)
5
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Harald Hoyer
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-04-03 18:52 EDT by Mickael
Modified: 2007-11-30 17:11 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-04-05 05:41:46 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Mickael 2006-04-03 18:52:34 EDT
Description of problem:
I use OpenLDAP to authenticate my user on my system.
In FC4 i have no problem.
My problem is with udev when my computer boot.

When i have in my /etc/nsswitch.conf : "passwd/shadow/group: files ldap"
udev wait for connect to LDAP. But OpenLDAP start after many other thing that udev.

When i set in /etc/nsswitch.conf : "passwd/shadow/group: files"
I don't have to wait but i lose my authentication of my users.


Version-Release number of selected component (if applicable):
udev-084-13
openldap-2.3.19-4

How reproducible:
Setup authentication of users and groups in OpenLDAP on the same machine.
My configuration is set in pam, ldap.conf, nsswitch.conf.

Steps to Reproduce:
1.
2.
3.
  
Actual results:
Very long timeout on boot (waiting 5, 10, 20, 40, 80...)

Expected results:
start udev without check the connection with ldap.

Additional info:
Excuse for my english, i am french.
Comment 1 Harald Hoyer 2006-04-04 08:16:43 EDT
Do you have any users, groups in your rules files, which are not in passwd/group??

$ for i in $(perl -n -e 'if (/GROUP="([^"]*)"/) { print "$1\n"; };'
/etc/udev/rules.d/*.rules|sort -u);do grep -q $i /etc/group || echo $i;done

$ for i in $(perl -n -e 'if (/OWNER="([^"]*)"/) { print "$1\n"; };'
/etc/udev/rules.d/*.rules|sort -u);do grep -q $i /etc/passwd || echo $i;done
Comment 2 Mickael 2006-04-04 19:24:55 EDT
I have do many test with your answer.

When i have execute yours command, i have found one user and group (asterisk)
who need to be in the /etc/{passwd,group}.

I use asterisk in CVS and i don't known why, but this version create a file in
the directory /etc/udev/rules.d/ who need the user asterisk.

The problem is now solve for udev.

I have a small question:
udev is the first thing that start on the system.
There are not network or other daemon on the csystem.
Why udev use all possibility (nsswitch) to find all user in the *.rules ?
Is it not possible to restric the search to /etc/passwd only ?

An another thing to finish:
udev the problem is solve, now i need to open another bug report for named who
have the same probleme: named don't start if i have "files ldap" in the
/etc/nsswitch.conf and start if "ldap" is not present. ;((

Very thank to you for your help.
Comment 3 Harald Hoyer 2006-04-05 05:41:46 EDT
> Why udev use all possibility (nsswitch) to find all user in the *.rules ?
This is standard glibc behaviour, which cannot/should not be changed.

> Is it not possible to restric the search to /etc/passwd only ?
I would love to do this for start_udev, but what if the users are in a DB?
Comment 4 Harald Hoyer 2006-04-05 05:48:16 EDT
This may help:
/etc/nsswitch.conf:
passwd:         files ldap [UNAVAIL=return]
group:          files ldap [UNAVAIL=return] 

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