Ahoj,

nevim, co delam blbe, ale nejak mi porad nefunguje nscd i kdyz mam
vsechno (snad) spravne nastavene.

Jde o fileserver se samba4 jako AD DC, ale misto winbind pouzivam
primy pristup k ldap atributum pomoci nss-pam-ldapd-0.8.14_2.

------------------------ /etc/nsswitch.conf
group: cache files ldap
passwd: cache files ldap
hosts: files dns
networks: files
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files
------------------------

------------------------ /etc/nscd.conf
enable-cache passwd yes
enable-cache group yes
enable-cache hosts yes
enable-cache services yes
enable-cache protocols yes
enable-cache rpc yes
enable-cache networks yes
------------------------

Pri dotazu na adresar se spoustou ruznych vlastniku bezi samba jako o
zivot a casy jsou tragicky:

# time ls -l /home >/dev/null

real 0m5.365s
user 0m0.001s
sys 0m0.047s

Pri opakovanych dotazech je to porad stejny, takze do nscd se imho
vubec nic neulozi, nechapu proc.

Kdyz "ldap" z nsswitch.conf vyhodim, vypada to nasledovne:

# time ls -l /home >/dev/null

real 0m0.010s
user 0m0.001s
sys 0m0.009s

Kdyz spustim nscd v debug modu, tak vypise jenom inicializacni hlasky
a pak uz nikdy nic, at delam, co delam:

# nscd -nst
M1 from main: request agents registered successfully
M2 from cache: cache was successfully initialized
M2 from runtime environment: using socket /var/run/nscd
M2 from runtime environment: successfully initialized
M1 from main: working in single-threaded mode
[.... dal nic ....]

Napadlo me i ze by treba byl problem v pravech k /var/run/nscd, ale taky nic:
# ls -l /var/run/nscd
srw-rw-rw-  1 root  wheel  0 Sep  7 14:46 /var/run/nscd

Jeste jsem ze zoufalosti zkusil "truss ls -l /" a je tam jedna pasaz,
ktera mi prijde podezrela:
------------------------
stat("/etc/nsswitch.conf",{ mode=-r--r--r--
,inode=4487,size=522,blksize=4096 }) = 0 (0x0)
socket(PF_LOCAL,0x10000001,0)        = 5 (0x5)
connect(5,{ AF_UNIX "/var/run/nscd" },15)  = 0 (0x0)
fcntl(5,F_SETFL,O_NONBLOCK)          = 0 (0x0)
kqueue(0x8018ac000,0x801016bd8,0x10,0x80063f108,0x8018ac010,0x2) = 6 (0x6)
kevent(6,{0x5,EVFILT_WRITE,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
kqueue(0x6,0x7fffffffcb28,0x1,0x0,0x0,0x0)    = 7 (0x7)
kevent(7,{0x5,EVFILT_READ,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
kevent(6,{0x5,EVFILT_WRITE,EV_ADD,1,0x4,0x0},1,0x0,0,0x0) = 0 (0x0)
kevent(6,0x0,0,{0x5,EVFILT_WRITE,EV_EOF,0,0x2000,0x0},1,0x0) = 1 (0x1)
sendmsg(0x5,0x7fffffffca80,0x20000,0x1,0x1,0x0)  ERR#32 'Broken pipe'
kevent(6,{0x5,EVFILT_WRITE,EV_ADD,0,0x0,0x0},1,0x0,0,0x0) = 0 (0x0)
close(5)              = 0 (0x0)
close(7)              = 0 (0x0)
close(6)              = 0 (0x0)
------------------------
Tahle cela pasaz (krome prvniho radku) se tam objevuje jenom pri
zapnutym nscd v nsswitch.conf. A ten broken pipe mi prijde krajne
podezerelej teda :)

Pritom nscd zda se na socketu posloucha:
------------------------
# sockstat | grep nscd
root     nscd       15950 4  stream /var/run/nscd
------------------------

Nejak ted nevim, jak dal - prozkoumat, jakej protokol se pouziva pri
komunikaci pres socket /var/run/nscd a zkoumat, proc a jak
(ne)odpovida? Do toho se mi teda zatracene nechce :) a pokud existuje
nejaka jina cesta, beru vsema deseti :)

Netusite nekdo, kde by mohl byt zakopanej pes? Neresili jste to uz nekdy?

Budu rad za jakykoli nasmerovani, uz fakt nevim, kam dal koukat...

diky

Mirek
-- 
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem