Fix deadlocks when reading/writing off-page duplicate tree
Resolves: #1349779
This commit is contained in:
parent
0f9eac24b2
commit
10b101d3ad
14
checkpoint-opd-deadlock.patch
Normal file
14
checkpoint-opd-deadlock.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- db-5.3.21/src/db/db_cam.c.opd_deadlock 2017-10-31 12:20:54.118979690 +0100
|
||||||
|
+++ db-5.3.21/src/db/db_cam.c 2017-10-31 12:21:06.828739341 +0100
|
||||||
|
@@ -868,6 +868,11 @@
|
||||||
|
flags == DB_PREV || flags == DB_PREV_DUP)) {
|
||||||
|
if (tmp_rmw && (ret = dbc->am_writelock(dbc)) != 0)
|
||||||
|
goto err;
|
||||||
|
+ /* Latch the primary tree page here in order to not deadlock later. */
|
||||||
|
+ if (cp->page == NULL &&
|
||||||
|
+ (ret = __memp_fget(mpf, &cp->pgno,
|
||||||
|
+ dbc->thread_info, dbc->txn, 0, &cp->page)) != 0)
|
||||||
|
+ goto err;
|
||||||
|
if (F_ISSET(dbc, DBC_TRANSIENT))
|
||||||
|
opd = cp->opd;
|
||||||
|
else if ((ret = __dbc_idup(cp->opd, &opd, DB_POSITION)) != 0)
|
12
libdb.spec
12
libdb.spec
@ -4,7 +4,7 @@
|
|||||||
Summary: The Berkeley DB database library for C
|
Summary: The Berkeley DB database library for C
|
||||||
Name: libdb
|
Name: libdb
|
||||||
Version: 5.3.28
|
Version: 5.3.28
|
||||||
Release: 28%{?dist}
|
Release: 29%{?dist}
|
||||||
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
|
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
|
||||||
Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz
|
Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz
|
||||||
# For mt19937db.c
|
# For mt19937db.c
|
||||||
@ -43,6 +43,8 @@ Patch32: db-5.3.28-rpm-lock-check.patch
|
|||||||
# downstream patch to hotfix rhbz#1464033, sent upstream
|
# downstream patch to hotfix rhbz#1464033, sent upstream
|
||||||
Patch33: db-5.3.28-cwd-db_config.patch
|
Patch33: db-5.3.28-cwd-db_config.patch
|
||||||
Patch34: libdb-5.3.21-region-size-check.patch
|
Patch34: libdb-5.3.21-region-size-check.patch
|
||||||
|
# Patch sent upstream
|
||||||
|
Patch35: checkpoint-opd-deadlock.patch
|
||||||
|
|
||||||
URL: http://www.oracle.com/database/berkeley-db/
|
URL: http://www.oracle.com/database/berkeley-db/
|
||||||
License: BSD and LGPLv2 and Sleepycat
|
License: BSD and LGPLv2 and Sleepycat
|
||||||
@ -240,6 +242,7 @@ popd
|
|||||||
%patch32 -p1
|
%patch32 -p1
|
||||||
%patch33 -p1
|
%patch33 -p1
|
||||||
%patch34 -p1
|
%patch34 -p1
|
||||||
|
%patch35 -p1
|
||||||
|
|
||||||
cd dist
|
cd dist
|
||||||
./s_config
|
./s_config
|
||||||
@ -451,10 +454,13 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_libdir}/libdb_java.so
|
%{_libdir}/libdb_java.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Oct 24 2017 Petr Kubat <pkubat@redhat.com> 5.3.21-28
|
* Tue Oct 31 2017 Petr Kubat <pkubat@redhat.com> 5.3.28-29
|
||||||
|
- Fix deadlocks when reading/writing off-page duplicate tree (#1349779)
|
||||||
|
|
||||||
|
* Tue Oct 24 2017 Petr Kubat <pkubat@redhat.com> 5.3.28-28
|
||||||
- Run a number of quick subsystem checks on build
|
- Run a number of quick subsystem checks on build
|
||||||
|
|
||||||
* Thu Sep 07 2017 Petr Kubat <pkubat@redhat.com> 5.3.21-27
|
* Thu Sep 07 2017 Petr Kubat <pkubat@redhat.com> 5.3.28-27
|
||||||
- Fail properly when encountering removed or 0-byte regions (#1471011)
|
- Fail properly when encountering removed or 0-byte regions (#1471011)
|
||||||
|
|
||||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.28-26
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.28-26
|
||||||
|
Loading…
Reference in New Issue
Block a user