summaryrefslogtreecommitdiff
path: root/databases/db4/patches
diff options
context:
space:
mode:
authorrecht <recht>2004-07-01 15:17:21 +0000
committerrecht <recht>2004-07-01 15:17:21 +0000
commit76b823d307ed7eb54c5ce9c170ec791029eb95f2 (patch)
tree6122f5dec2c79fafa8c5b43fa53a0a155c9df001 /databases/db4/patches
parentd2fcce0f221b80757271cf92ae46a2947b201547 (diff)
downloadpkgsrc-76b823d307ed7eb54c5ce9c170ec791029eb95f2.tar.gz
Add two patches from Sleepycat:
1. Long-running applications can hang in the Berkeley DB cache. http://www.sleepycat.com/update/4.2.52/patch.4.2.52.1 as patch-ba 2. Replication clients fail to lock all the necessary pages when applying updates if there were more than one database in the transaction. http://www.sleepycat.com/update/4.2.52/patch.4.2.52.2 as patch-bb Bump PKGREVISION to 4.
Diffstat (limited to 'databases/db4/patches')
-rw-r--r--databases/db4/patches/patch-ba12
-rw-r--r--databases/db4/patches/patch-bb26
2 files changed, 38 insertions, 0 deletions
diff --git a/databases/db4/patches/patch-ba b/databases/db4/patches/patch-ba
new file mode 100644
index 00000000000..1135ccbe56e
--- /dev/null
+++ b/databases/db4/patches/patch-ba
@@ -0,0 +1,12 @@
+$NetBSD: patch-ba,v 1.1 2004/07/01 15:17:21 recht Exp $
+
+--- ../mp/mp_fput.c.orig 2003-09-30 19:42:07.000000000 +0200
++++ ../mp/mp_fput.c 2004-07-01 15:32:08.000000000 +0200
+@@ -285,6 +285,7 @@
+ bhp != NULL; bhp = SH_TAILQ_NEXT(bhp, hq, __bh))
+ if (bhp->priority != UINT32_T_MAX &&
+ bhp->priority > MPOOL_BASE_DECREMENT)
++ bhp->priority -= MPOOL_BASE_DECREMENT;
+ MUTEX_UNLOCK(dbenv, &hp->hash_mutex);
+ }
+ }
diff --git a/databases/db4/patches/patch-bb b/databases/db4/patches/patch-bb
new file mode 100644
index 00000000000..6cb1b6b5938
--- /dev/null
+++ b/databases/db4/patches/patch-bb
@@ -0,0 +1,26 @@
+$NetBSD: patch-bb,v 1.1 2004/07/01 15:17:21 recht Exp $
+
+--- ../lock/lock.c.orig 2003-11-21 03:40:10.000000000 +0100
++++ ../lock/lock.c 2004-07-01 15:32:08.000000000 +0200
+@@ -2217,9 +2217,10 @@
+ sizeof(db_pgno_t); \
+ } while (0)
+ #define COPY_OBJ(dp, obj) do { \
+- memcpy(dp, obj->data, obj->size); \
++ memcpy(dp, \
++ (obj)->data, (obj)->size); \
+ dp = (u_int8_t *)dp + \
+- ALIGN(obj->size, \
++ ALIGN((obj)->size, \
+ sizeof(u_int32_t)); \
+ } while (0)
+
+@@ -2339,7 +2340,7 @@
+ for (i = 0; i < nlocks; i = j) {
+ PUT_PCOUNT(dp, obj[i].ulen);
+ PUT_SIZE(dp, obj[i].size);
+- COPY_OBJ(dp, obj);
++ COPY_OBJ(dp, &obj[i]);
+ lock = (DB_LOCK_ILOCK *)obj[i].data;
+ for (j = i + 1; j <= i + obj[i].ulen; j++) {
+ lock = (DB_LOCK_ILOCK *)obj[j].data;