]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-mdb/init.c
ITS#8578 - remove unused-variables in RE24 testing call (2.4.45)
[openldap] / servers / slapd / back-mdb / init.c
index 7ccdd67b8f0cc143f816e3cc495f670d736782f1..65f95fb8dceb947a61e812a7556fdff25783a238 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2000-2013 The OpenLDAP Foundation.
+ * Copyright 2000-2017 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -62,6 +62,7 @@ mdb_db_init( BackendDB *be, ConfigReply *cr )
        mdb->mi_search_stack = NULL;
 
        mdb->mi_mapsize = DEFAULT_MAPSIZE;
+       mdb->mi_rtxn_size = DEFAULT_RTXN_SIZE;
 
        be->be_private = mdb;
        be->be_cf_ocs = be->bd_info->bi_cf_ocs;
@@ -176,18 +177,18 @@ mdb_db_open( BackendDB *be, ConfigReply *cr )
 
        if ( rc ) {
                Debug( LDAP_DEBUG_ANY,
-                       LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened, err %d. "
+                       LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened: %s (%d). "
                        "Restore from backup!\n",
-                       be->be_suffix[0].bv_val, rc, 0 );
+                       be->be_suffix[0].bv_val, mdb_strerror(rc), rc );
                goto fail;
        }
 
        rc = mdb_txn_begin( mdb->mi_dbenv, NULL, flags & MDB_RDONLY, &txn );
        if ( rc ) {
                Debug( LDAP_DEBUG_ANY,
-                       LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened, err %d. "
+                       LDAP_XSTRING(mdb_db_open) ": database \"%s\" cannot be opened: %s (%d). "
                        "Restore from backup!\n",
-                       be->be_suffix[0].bv_val, rc, 0 );
+                       be->be_suffix[0].bv_val, mdb_strerror(rc), rc );
                goto fail;
        }
 
@@ -226,7 +227,6 @@ mdb_db_open( BackendDB *be, ConfigReply *cr )
                else if ( i == MDB_DN2ID ) {
                        MDB_cursor *mc;
                        MDB_val key, data;
-                       ID id;
                        mdb_set_dupsort( txn, mdb->mi_dbis[i], mdb_dup_compare );
                        /* check for old dn2id format */
                        rc = mdb_cursor_open( txn, mdb->mi_dbis[i], &mc );
@@ -265,10 +265,15 @@ mdb_db_open( BackendDB *be, ConfigReply *cr )
                goto fail;
        }
 
-       rc = mdb_attr_dbs_open( be, txn, cr );
-       if ( rc ) {
-               mdb_txn_abort( txn );
-               goto fail;
+       /* slapcat doesn't need indexes. avoid a failure if
+        * a configured index wasn't created yet.
+        */
+       if ( !(slapMode & SLAP_TOOL_READONLY) ) {
+               rc = mdb_attr_dbs_open( be, txn, cr );
+               if ( rc ) {
+                       mdb_txn_abort( txn );
+                       goto fail;
+               }
        }
 
        rc = mdb_txn_commit(txn);