steffen: server/perl-kolab/Kolab-LDAP-Backend-slurpd slurpd.pm, 1.14.2.2, 1.14.2.3
cvs at intevation.de
cvs at intevation.de
Sun Apr 30 07:09:35 CEST 2006
Author: steffen
Update of /kolabrepository/server/perl-kolab/Kolab-LDAP-Backend-slurpd
In directory doto:/tmp/cvs-serv28205/Kolab-LDAP-Backend-slurpd
Modified Files:
Tag: kolab_2_0_branch
slurpd.pm
Log Message:
Backport of fix for bad performance on large replogs (Issue1210)
Index: slurpd.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/Kolab-LDAP-Backend-slurpd/Attic/slurpd.pm,v
retrieving revision 1.14.2.2
retrieving revision 1.14.2.3
diff -u -d -r1.14.2.2 -r1.14.2.3
--- slurpd.pm 20 Oct 2005 09:59:31 -0000 1.14.2.2
+++ slurpd.pm 30 Apr 2006 05:09:33 -0000 1.14.2.3
@@ -274,16 +274,23 @@
my $ready;
my $offset = 0;
- if (!($select->can_read(1)) && $changes) {
- $changes = 0;
- Kolab::log('SD', 'Change detected w/ no pending LDAP messages; reloading services if needed');
- Kolab::LDAP::sync;
- system($Kolab::config{'prefix'} . '/sbin/kolabconf');
- }
+
+ if (!($select->can_read(0)) && $changes) {
+ Kolab::log('SD', 'Change detected w/ no pending LDAP messages; waiting a second...');
+ if( !($select->can_read(1)) ) {
+ $changes = 0;
+ Kolab::log('SD', 'Change detected w/ no pending LDAP messages; reloading services if needed');
+ Kolab::LDAP::sync;
+ Kolab::log('SD', 'Running kolabconf');
+ system($Kolab::config{'prefix'} ."/sbin/kolabconf") == 0
+ or Kolab::log('SD', "Failed to run kolabconf: $?", KOLAB_ERROR);
+ Kolab::log('SD', 'Kolabconf complete');
+ }
+ }
Kolab::log('SD', 'Waiting for LDAP updates');
- for ($ready = 1; $conn && $ready; $ready = $select->can_read(1)) {
+ for ($ready = 1; $conn && $ready; $ready = $select->can_read(0)) {
Kolab::log('SD', 'Reading ASN', KOLAB_DEBUG);
my $newoffset = asn_read($conn, $pdu, $offset);
if( !$conn->connected() or $offset == $newoffset ) {
@@ -293,7 +300,6 @@
}
$offset = $newoffset;
defined($offset) or $offset = 0;
- sleep 1;
}
if ($pdu) {
More information about the commits
mailing list