]> git.sur5r.net Git - openldap/commitdiff
Fix online reconfig
authorHoward Chu <hyc@openldap.org>
Thu, 26 Jul 2012 15:45:39 +0000 (08:45 -0700)
committerHoward Chu <hyc@openldap.org>
Thu, 26 Jul 2012 15:45:39 +0000 (08:45 -0700)
maxreaders/maxsize was not re-opening because cleanup call was missing
online indexer should abort txn after index failure

servers/slapd/back-mdb/config.c

index c0e12044b36f2c4f9f54ccd05dc57c6def71d0fa..fb516a5dc554fac6e4a0e2d204c81b88125571e0 100644 (file)
@@ -177,6 +177,9 @@ mdb_online_index( void *ctx, void *arg )
                if ( rc == 0 ) {
                        rc = mdb_txn_commit( txn );
                        txn = NULL;
+               } else {
+                       mdb_txn_abort( txn );
+                       txn = NULL;
                }
                if ( rc )
                        break;
@@ -564,14 +567,18 @@ mdb_cf_gen( ConfigArgs *c )
 
        case MDB_MAXREADERS:
                mdb->mi_readers = c->value_int;
-               if ( mdb->mi_flags & MDB_IS_OPEN )
+               if ( mdb->mi_flags & MDB_IS_OPEN ) {
                        mdb->mi_flags |= MDB_RE_OPEN;
+                       c->cleanup = mdb_cf_cleanup;
+               }
                break;
 
        case MDB_MAXSIZE:
                mdb->mi_mapsize = c->value_ulong;
-               if ( mdb->mi_flags & MDB_IS_OPEN )
+               if ( mdb->mi_flags & MDB_IS_OPEN ) {
                        mdb->mi_flags |= MDB_RE_OPEN;
+                       c->cleanup = mdb_cf_cleanup;
+               }
                break;
 
        }