Description of problem:
If LDAP replication is used, slurpd is started on service ldap start. However,
slurpd does not start, but hangs indefinetly and uses 100% CPU all the time.
Version-Release number of selected component (if applicable):
Fails every time
Steps to Reproduce:
1. Configure OpenLDAP to use replication
2. start ldap
3. Observe high CPU load by slurpd
LDAP replication not working
Low CPU utilization by slurpd, working replication.
command line used:
/usr/sbin/slurpd -r /var/lib/ldap/replica
last lines of strace are:
parent_tidptr=0x410019e0, tls=0x41001950, child_tidptr=0x410019e0) = 20403
futex(0x408009e0, FUTEX_WAIT, 20402, NULL <unfinished ...>
Reassigning to correct component.
I cannot reproduce the bug. Could you please specify precisely the "Configure
OpenLDAP to use replication" step? I just used the default slapd.conf file and
replica host=f8:389 binddn="cn=Manager,dc=my-domain,dc=com" bindmethod=simple
F8 is another Fedora 8 machine, running slapd. Everything works out of the box
and my data gets replicated to F8.
Please attach (without any passwords!):
- slapd.conf on "master"
- slapd.conf on "slave" (I assume it's another Fedora 8, right?)
- ldif export of your database, if possible
- log from master, slave and slurpd on master (beware, they can contain
passwords, use some dummy ones)
How to get a log:
service ldap stop
slapd -d -1 &>master.log
slurpd -d -1 &>slurpd.log
service ldap stop
slapd -d -1 >slave.log
Closing the bug, the reporter failed to provide requested log files.
The requested log files were empty and thus useless.
Finally the reason was found. If the slurpd replog file is a directory, this condition is not properly detected and the daemon hogs all available CPU-time.
(In reply to comment #4)
> Finally the reason was found. If the slurpd replog file is a directory, this
> condition is not properly detected and the daemon hogs all available CPU-time.
The upstream (OpenLDAP 2.4.x) does not use slurpd anymore, I guess it does not make much sense to fix it. Use Fedora 9/10 or use configuration files with proper replog file :).