--- Scott Moynes <smoynes@nexus.carleton.ca> wrote:
> We recently had database corruption that was not recoverable
> without recreating the repository and loading from a dump. We
> noticed svn would hang trying to open the database, and looking
> through debian's bug database we found this:
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=185033
> 
> It is too early to know if this was in fact the cause of our
> corruption or not, though.
To summarize:
http://ftp.debian.org/debian/pool/main/d/db4.1/db4.1_4.1.25-4.diff.gz
contains only one db source file diff (which is attached). This diff
is a combination of patch 1 from Sleepycat
(http://www.sleepycat.com/update/4.1.25/patch.4.1.25.html) plus
another bit (apparently from Sleepycat directly to the debian people)
that fixes the abort issue. I don't know why its not also listed on
Sleepycat's patch page.
Michael
--- db4.1-4.1.25.orig/fileops/fop_util.c
+++ db4.1-4.1.25/fileops/fop_util.c
@@ -40,7 +40,7 @@
         u_int32_t __lockval;						\
                                                                         \
         if (LOCKING_ON((ENV))) {					\
-		__lockval = 0;						\
+		__lockval = 1;						\
                 __dbt.data = &__lockval;				\
                 __dbt.size = sizeof(__lockval);				\
                 if ((ret = (ENV)->lock_get((ENV), (ID),			\
@@ -94,7 +94,8 @@
         DB_LOCK_ILOCK lock_desc;
         int ret;
 
-	if (!LOCKING_ON(dbenv) || F_ISSET(dbp, DB_AM_COMPENSATE))
+	if (!LOCKING_ON(dbenv) ||
+	    F_ISSET(dbp, DB_AM_COMPENSATE | DB_AM_RECOVER))
                 return (0);
 
         /*
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jun 12 20:47:07 2003