aboutsummaryrefslogtreecommitdiff
path: root/databases
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2008-12-15 18:15:24 +0000
committerXin LI <delphij@FreeBSD.org>2008-12-15 18:15:24 +0000
commit693767be290b11092f24e5a983d720cb6e2f4f0d (patch)
tree716ed928edd0de50e4844a14af6a13398a4507a3 /databases
parent5607a893bfe9d0ccb219c3053cd9cdad049238d5 (diff)
Notes
Diffstat (limited to 'databases')
-rw-r--r--databases/db47/Makefile8
-rw-r--r--databases/db47/distinfo3
-rw-r--r--databases/db47/files/patch-lock::lock.c42
3 files changed, 9 insertions, 44 deletions
diff --git a/databases/db47/Makefile b/databases/db47/Makefile
index 2445b46c9872..55e48dae3c00 100644
--- a/databases/db47/Makefile
+++ b/databases/db47/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= db47
-PORTVERSION= 4.7.25.1
+PORTVERSION= 4.7.25.2
CATEGORIES= databases
MASTER_SITES= http://download-west.oracle.com/berkeley-db/ \
http://download-east.oracle.com/berkeley-db/ \
@@ -16,10 +16,14 @@ DISTNAME= db-${PORTVERSION:R}
DIST_SUBDIR= bdb
PATCH_SITES= http://www.oracle.com/technology/products/berkeley-db/db/update/${PORTVERSION:R}/
-PATCHFILES= patch.4.7.25.1
+PATCHFILES= patch.4.7.25.1 patch.4.7.25.2
PATCH_DIST_STRIP= -d .. --ignore-whitespace
# * patch.4.7.25.1: -----------------------------------------------------------
# # [#16406] Replication clients should be able to open a sequence.
+#
+# * patch.4.7.25.2: -----------------------------------------------------------
+# # [#16415] DB_ENV->lock_get may self deadlock if user defined locks
+# are used and there is only one lock partition defined.
# I allow matthias.andree@gmx.de and all freebsd committer to do changes
# to this package.
diff --git a/databases/db47/distinfo b/databases/db47/distinfo
index f42260952182..4b2f1b40aba0 100644
--- a/databases/db47/distinfo
+++ b/databases/db47/distinfo
@@ -4,3 +4,6 @@ SIZE (bdb/db-4.7.25.tar.gz) = 13124129
MD5 (bdb/patch.4.7.25.1) = 5fdf101259e5164dea1c8c86214fde38
SHA256 (bdb/patch.4.7.25.1) = e91590af872705efc34414afb702abc630a75c55ba61570dca2216c783e0a83a
SIZE (bdb/patch.4.7.25.1) = 2072
+MD5 (bdb/patch.4.7.25.2) = bd410a11c71fee52fddb6aa2d8d4f80c
+SHA256 (bdb/patch.4.7.25.2) = 05d6cde0ab1bfdb80394a7a88ff7233d0407f0b09103b0dd3791ebfccbbcca31
+SIZE (bdb/patch.4.7.25.2) = 2210
diff --git a/databases/db47/files/patch-lock::lock.c b/databases/db47/files/patch-lock::lock.c
deleted file mode 100644
index 33f8066ca0dd..000000000000
--- a/databases/db47/files/patch-lock::lock.c
+++ /dev/null
@@ -1,42 +0,0 @@
---- ../lock/lock.c.orig 2008-05-07 05:27:35.000000000 -0700
-+++ ../lock/lock.c 2008-09-26 11:07:15.000000000 -0700
-@@ -1274,10 +1274,12 @@
- SH_TAILQ_REMOVE(
- &lt->obj_tab[obj_ndx], sh_obj, links, __db_lockobj);
- if (sh_obj->lockobj.size > sizeof(sh_obj->objdata)) {
-- LOCK_REGION_LOCK(env);
-+ if (region->part_t_size != 1)
-+ LOCK_REGION_LOCK(env);
- __env_alloc_free(&lt->reginfo,
- SH_DBT_PTR(&sh_obj->lockobj));
-- LOCK_REGION_UNLOCK(env);
-+ if (region->part_t_size != 1)
-+ LOCK_REGION_UNLOCK(env);
- }
- SH_TAILQ_INSERT_HEAD(
- &FREE_OBJS(lt, part_id), sh_obj, links, __db_lockobj);
-@@ -1467,15 +1469,21 @@
- if (obj->size <= sizeof(sh_obj->objdata))
- p = sh_obj->objdata;
- else {
-- LOCK_REGION_LOCK(env);
-+ /*
-+ * If we have only one partition, the region is locked.
-+ */
-+ if (region->part_t_size != 1)
-+ LOCK_REGION_LOCK(env);
- if ((ret =
- __env_alloc(&lt->reginfo, obj->size, &p)) != 0) {
- __db_errx(env,
- "No space for lock object storage");
-- LOCK_REGION_UNLOCK(env);
-+ if (region->part_t_size != 1)
-+ LOCK_REGION_UNLOCK(env);
- goto err;
- }
-- LOCK_REGION_UNLOCK(env);
-+ if (region->part_t_size != 1)
-+ LOCK_REGION_UNLOCK(env);
- }
-
- memcpy(p, obj->data, obj->size);