This commit is contained in:
fenlason 2006-04-27 20:28:17 +00:00
parent b944bc0fd9
commit f3f93459e3
5 changed files with 79 additions and 4 deletions

View File

@ -4,3 +4,4 @@ openldap-2.3.19.tgz
db-4.4.20.tar.gz
autoconf-2.13.1.tar.gz
automake-1.4a.tar.gz
openldap-2.3.21.tgz

31
db-4.4.20-1.patch Normal file
View File

@ -0,0 +1,31 @@
Fix a bug that could cause a trap during recovery if multiple
operations that could remove the same extent were recovered. [#14061]
*** qam/qam_files.c.orig 2005-10-20 11:57:12.000000000 -0700
--- qam/qam_files.c 2006-01-27 13:38:38.000000000 -0800
***************
*** 411,416 ****
--- 411,422 ----
DB_APP_DATA, buf, 0, NULL, &real_name)) != 0)
goto err;
#endif
+
+ mpf = array->mpfarray[offset].mpf;
+ /* This extent my already be marked for delete and closed. */
+ if (mpf == NULL)
+ goto err;
+
/*
* The log must be flushed before the file is deleted. We depend on
* the log record of the last delete to recreate the file if we crash.
***************
*** 418,424 ****
if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0)
goto err;
- mpf = array->mpfarray[offset].mpf;
(void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1);
/* Someone could be real slow, let them close it down. */
if (array->mpfarray[offset].pinref != 0)
--- 424,429 ----

32
db-4.4.20-2.patch Normal file
View File

@ -0,0 +1,32 @@
Fix a bug that could cause traps or hangs if the DB_TXN->set_name function
is used in a multithreaded application. [#14033]
*** txn/txn.c.orig Tue Nov 1 06:50:03 2005
--- txn/txn.c Tue Jan 31 15:05:13 2006
***************
*** 1049,1060 ****
--- 1049,1062 ----
return (ret);
memcpy(txn->name, name, len);
+ TXN_SYSTEM_LOCK(dbenv);
if (td->name != INVALID_ROFF) {
__db_shalloc_free(
&mgr->reginfo, R_ADDR(&mgr->reginfo, td->name));
td->name = INVALID_ROFF;
}
if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) {
+ TXN_SYSTEM_UNLOCK(dbenv);
__db_err(dbenv,
"Unable to allocate memory for transaction name");
***************
*** 1063,1068 ****
--- 1065,1071 ----
return (ret);
}
+ TXN_SYSTEM_UNLOCK(dbenv);
td->name = R_OFFSET(&mgr->reginfo, p);
memcpy(p, name, len);

View File

@ -2,7 +2,7 @@
%define db_version 4.4.20
%define ldbm_backend berkeley
%define version_22 2.2.29
%define version_23 2.3.19
%define version_23 2.3.21
%define evolution_connector_prefix %{_libdir}/evolution-openldap
%define evolution_connector_includedir %{evolution_connector_prefix}/include
%define evolution_connector_libdir %{evolution_connector_prefix}/%{_lib}
@ -13,7 +13,7 @@
Summary: The configuration files, libraries, and documentation for OpenLDAP.
Name: openldap
Version: %{version_23}
Release: 4
Release: 2
License: OpenLDAP
Group: System Environment/Daemons
Source0: ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/openldap-%{version_23}.tgz
@ -57,6 +57,8 @@ Patch303: MigrationTools-26-suffix.patch
Patch304: MigrationTools-46-schema.patch
Patch305: MigrationTools-45-noaliases.patch
Patch400: db-4.4.20-1.patch
Patch401: db-4.4.20-2.patch
URL: http://www.openldap.org/
BuildRoot: %{_tmppath}/%{name}-%{version_23}-root
@ -151,6 +153,12 @@ required by some applications.
%prep
%setup -q -c -a 1 -a 2 -a 3 -a 4 -a 5
pushd db-%{db_version}
%patch400 -b .patch1
%patch401 -b .patch2
popd
pushd openldap-%{version_23}
cp %{_datadir}/libtool/config.{sub,guess} build/
popd
@ -221,7 +229,6 @@ popd
%build
autodir=`pwd`/auto-instroot
dbdir=`pwd`/db-instroot
dbdir40=`pwd`/db-instroot-4.0
libtool='%{_bindir}/libtool'
tagname=CC; export tagname
PATH=${autodir}/bin:${PATH}
@ -682,6 +689,10 @@ fi
%attr(0644,root,root) %{evolution_connector_libdir}/*.a
%changelog
* Thu Apr 27 2006 Jay Fenlason <fenlason@redhat.com> 2.3.21-2
- Upgrade to 2.3.21
- Add two upstream patches for db-4.4.20
* Mon Feb 13 2006 Jay Fenlason <fenlason@redhat.com> 2.3.19-4
- Re-fix ldap.init

View File

@ -2,5 +2,5 @@
0faee50993f7e4fe00f4b921b640b84d automake-1.4a.tar.gz
6c4c72a1336aa45b463e738034c078d6 openldap-2.2.29.tgz
dc80548f76d6aeba2b51b15751e08b21 MigrationTools-46.tar.gz
867ee197df0e4432fa00f2439e6094f6 openldap-2.3.19.tgz
33851f01b455cca48aa601956de93c6f db-4.4.20.tar.gz
37ef142fc05abd088a4bb2d30dc4c679 openldap-2.3.21.tgz