[Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm import-threads.c, 1.8, 1.8.2.1 import.c, 1.5, 1.5.2.1 import.h, 1.4, 1.4.2.1

Noriko Hosoi (nhosoi) fedora-directory-commits at redhat.com
Mon Feb 20 18:14:58 UTC 2006


Author: nhosoi

Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv23432/back-ldbm

Modified Files:
      Tag: Directory71RtmBranch
	import-threads.c import.c import.h 
Log Message:
[175063] entry with escaped characters fails to import and index



Index: import-threads.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/import-threads.c,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -r1.8 -r1.8.2.1
--- import-threads.c	28 Apr 2005 17:31:54 -0000	1.8
+++ import-threads.c	20 Feb 2006 18:14:50 -0000	1.8.2.1
@@ -986,6 +986,7 @@
     int ret = 0;
     struct attrinfo *parentid_ai;
     Slapi_PBlock *pb = slapi_pblock_new();
+    int shift = 0;
 
     PR_ASSERT(info != NULL);
     PR_ASSERT(inst != NULL);
@@ -1027,10 +1028,11 @@
         info->state = RUNNING;
 
         /* Read that entry from the cache */
-        fi = import_fifo_fetch(job, id, 0);
+        fi = import_fifo_fetch(job, id, 0, shift);
         if (! fi) {
-            import_log_notice(job, "ERROR: foreman fifo error");
-            goto error;
+            import_log_notice(job, "WARNING: entry id %d is missing");
+            shift++;
+            continue;
         }
 
         /* first, fill in any operational attributes */
@@ -1268,7 +1270,7 @@
             info->state = RUNNING;
 
             /* Read that entry from the cache */
-            fi = import_fifo_fetch(job, id, 1);
+            fi = import_fifo_fetch(job, id, 1, 0);
             ep = fi ? fi->entry : NULL;
             if (!ep) {
                 /* skipping an entry that turned out to be bad */


Index: import.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/import.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- import.c	19 Apr 2005 22:07:38 -0000	1.5
+++ import.c	20 Feb 2006 18:14:50 -0000	1.5.2.1
@@ -91,7 +91,7 @@
     return 0;
 }
 
-FifoItem *import_fifo_fetch(ImportJob *job, ID id, int worker)
+FifoItem *import_fifo_fetch(ImportJob *job, ID id, int worker, int shift)
 {
     int idx = id % job->fifo.size;
     FifoItem *fi;
@@ -102,7 +102,7 @@
     return NULL;
     }
     if (fi->entry) {
-        if (id != fi->entry->ep_id)
+        if (id != fi->entry->ep_id - shift)
             fi = NULL;
         else if (worker) {
             if (fi->bad) return NULL;


Index: import.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/import.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- import.h	19 Apr 2005 22:07:38 -0000	1.4
+++ import.h	20 Feb 2006 18:14:50 -0000	1.4.2.1
@@ -201,7 +201,7 @@
 
 
 /* import.c */
-FifoItem *import_fifo_fetch(ImportJob *job, ID id, int worker);
+FifoItem *import_fifo_fetch(ImportJob *job, ID id, int worker, int shift);
 void import_free_job(ImportJob *job);
 void import_log_notice(ImportJob *job, char *format, ...);
 void import_abort_all(ImportJob *job, int wait_for_them);




More information about the Fedora-directory-commits mailing list