diff options
author | recht <recht> | 2004-07-01 15:17:21 +0000 |
---|---|---|
committer | recht <recht> | 2004-07-01 15:17:21 +0000 |
commit | 76b823d307ed7eb54c5ce9c170ec791029eb95f2 (patch) | |
tree | 6122f5dec2c79fafa8c5b43fa53a0a155c9df001 /databases/db4/patches | |
parent | d2fcce0f221b80757271cf92ae46a2947b201547 (diff) | |
download | pkgsrc-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-ba | 12 | ||||
-rw-r--r-- | databases/db4/patches/patch-bb | 26 |
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; |