I'm purposely going to ignore whether we should drop support for
4.0 and move to 4.1 or support both at the same time. That's not
my call - I think we should move to 4.1.24 due to the number of
fixes present in 4.1 - listed here:
http://www.sleepycat.com/update/4.1.24/if.4.1.24.html
But, that might be a tad painful (supposedly it is backwards
compatible file-wise - just not API-wise).
This passes 'make check' for me. -- justin
Add support for Berkeley DB 4.1.24.
* subversion/libsvn_fs/bdb/txn-table.c (svn_fs__open_transactions_table)
subversion/libsvn_fs/bdb/reps-table.c (svn_fs__open_reps_table),
subversion/libsvn_fs/bdb/copies-table.c (svn_fs__open_copies_table),
subversion/libsvn_fs/bdb/strings-table.c (svn_fs__open_strings_table),
subversion/libsvn_fs/bdb/rev-table.c (svn_fs__open_revisions_table),
subversion/libsvn_fs/bdb/changes-table.c (svn_fs__open_changes_table),
subversion/libsvn_fs/bdb/nodes-table.c (svn_fs__open_nodes_table),
Pass NULL Transaction ID and DB_AUTO_COMMIT to open.
Pass DB_AUTO_COMMIT to txns->put when no transaction is passed.
* subversion/libsvn_fs/fs.c (cleanup_fs_db, cleanup_fs):
Remove references to obsolete DB_INCOMPLETE error.
Index: subversion/libsvn_fs/bdb/txn-table.c
===================================================================
--- subversion/libsvn_fs/bdb/txn-table.c
+++ subversion/libsvn_fs/bdb/txn-table.c 2002-09-19 23:43:33.840001000 -0700
@@ -46,8 +46,8 @@
DB *txns;
DB_ERR (db_create (&txns, env, 0));
- DB_ERR (txns->open (txns, "transactions", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (txns->open (txns, NULL, "transactions", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
/* Create the `next-id' table entry. */
@@ -59,7 +59,7 @@
svn_fs__str_to_dbt (&key,
(char *) svn_fs__next_key_key),
svn_fs__str_to_dbt (&value, (char *) "0"),
- 0));
+ DB_AUTO_COMMIT));
}
*transactions_p = txns;
Index: subversion/libsvn_fs/bdb/reps-table.c
===================================================================
--- subversion/libsvn_fs/bdb/reps-table.c
+++ subversion/libsvn_fs/bdb/reps-table.c 2002-09-19 23:43:05.180007000 -0700
@@ -38,8 +38,8 @@
DB *reps;
DB_ERR (db_create (&reps, env, 0));
- DB_ERR (reps->open (reps, "representations", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (reps->open (reps, NULL, "representations", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
/* Create the `next-key' table entry. */
@@ -51,7 +51,7 @@
(reps, 0,
svn_fs__str_to_dbt (&key, (char *) svn_fs__next_key_key),
svn_fs__str_to_dbt (&value, (char *) "0"),
- 0));
+ DB_AUTO_COMMIT));
}
*reps_p = reps;
Index: subversion/libsvn_fs/bdb/copies-table.c
===================================================================
--- subversion/libsvn_fs/bdb/copies-table.c
+++ subversion/libsvn_fs/bdb/copies-table.c 2002-09-19 23:42:39.600010000 -0700
@@ -38,8 +38,8 @@
DB *copies;
DB_ERR (db_create (&copies, env, 0));
- DB_ERR (copies->open (copies, "copies", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (copies->open (copies, NULL, "copies", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
/* Create the initial `next-id' table entry. */
@@ -50,7 +50,7 @@
svn_fs__str_to_dbt (&key,
(char *) svn_fs__next_key_key),
svn_fs__str_to_dbt (&value, (char *) "0"),
- 0));
+ DB_AUTO_COMMIT));
}
*copies_p = copies;
Index: subversion/libsvn_fs/bdb/strings-table.c
===================================================================
--- subversion/libsvn_fs/bdb/strings-table.c
+++ subversion/libsvn_fs/bdb/strings-table.c 2002-09-19 23:43:29.590017000 -0700
@@ -41,9 +41,9 @@
multiple records. Note: this must occur before ->open(). */
DB_ERR (strings->set_flags (strings, DB_DUP));
- DB_ERR (strings->open (strings, "strings", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
- 0666));
+ DB_ERR (strings->open (strings, NULL, "strings", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
+ 0666));
if (create)
{
@@ -54,7 +54,7 @@
(strings, 0,
svn_fs__str_to_dbt (&key, (char *) svn_fs__next_key_key),
svn_fs__str_to_dbt (&value, (char *) "0"),
- 0));
+ DB_AUTO_COMMIT));
}
*strings_p = strings;
Index: subversion/libsvn_fs/bdb/rev-table.c
===================================================================
--- subversion/libsvn_fs/bdb/rev-table.c
+++ subversion/libsvn_fs/bdb/rev-table.c 2002-09-19 23:43:25.590000000 -0700
@@ -34,8 +34,8 @@
DB *revisions;
DB_ERR (db_create (&revisions, env, 0));
- DB_ERR (revisions->open (revisions, "revisions", 0, DB_RECNO,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (revisions->open (revisions, NULL, "revisions", 0, DB_RECNO,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
*revisions_p = revisions;
Index: subversion/libsvn_fs/bdb/changes-table.c
===================================================================
--- subversion/libsvn_fs/bdb/changes-table.c
+++ subversion/libsvn_fs/bdb/changes-table.c 2002-09-19 23:42:30.640011000 -0700
@@ -45,8 +45,8 @@
one-per-row. Note: this must occur before ->open(). */
DB_ERR (changes->set_flags (changes, DB_DUP));
- DB_ERR (changes->open (changes, "changes", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (changes->open (changes, NULL, "changes", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
*changes_p = changes;
Index: subversion/libsvn_fs/bdb/nodes-table.c
===================================================================
--- subversion/libsvn_fs/bdb/nodes-table.c
+++ subversion/libsvn_fs/bdb/nodes-table.c 2002-09-19 23:42:50.660011000 -0700
@@ -44,8 +44,8 @@
DB *nodes;
DB_ERR (db_create (&nodes, env, 0));
- DB_ERR (nodes->open (nodes, "nodes", 0, DB_BTREE,
- create ? (DB_CREATE | DB_EXCL) : 0,
+ DB_ERR (nodes->open (nodes, NULL, "nodes", 0, DB_BTREE,
+ (create ? (DB_CREATE | DB_EXCL) : 0) | DB_AUTO_COMMIT,
0666));
/* Create the `next-id' table entry (use '1' because '0' is
@@ -58,7 +58,7 @@
svn_fs__str_to_dbt (&key,
(char *) svn_fs__next_key_key),
svn_fs__str_to_dbt (&value, (char *) "1"),
- 0));
+ DB_AUTO_COMMIT));
}
*nodes_p = nodes;
Index: subversion/libsvn_fs/fs.c
===================================================================
--- subversion/libsvn_fs/fs.c
+++ subversion/libsvn_fs/fs.c 2002-09-19 01:21:48.590003000 -0700
@@ -104,15 +104,6 @@
*db_ptr = 0;
db_err = db->close (db, 0);
- /* We can ignore DB_INCOMPLETE on db->close and db->sync; it
- * just means someone else was using the db at the same time
- * we were. See the Berkeley documentation at:
- * http://www.sleepycat.com/docs/ref/program/errorret.html#DB_INCOMPLETE
- * http://www.sleepycat.com/docs/api_c/db_close.html
- */
- if (db_err == DB_INCOMPLETE)
- db_err = 0;
-
SVN_ERR (DB_WRAP (fs, msg, db_err));
}
@@ -141,12 +132,6 @@
{
int db_err = env->txn_checkpoint (env, 0, 0, 0);
- while (db_err == DB_INCOMPLETE)
- {
- apr_sleep (APR_USEC_PER_SEC * 1);
- db_err = env->txn_checkpoint (env, 0, 0, 0);
- }
-
/* If the environment was not (properly) opened, then txn_checkpoint
will typically return EINVAL. Ignore this case.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Sep 20 23:30:18 2002