diff --git a/libdb-limit-cpu.patch b/libdb-limit-cpu.patch new file mode 100644 index 0000000..475aa50 --- /dev/null +++ b/libdb-limit-cpu.patch @@ -0,0 +1,12 @@ +diff -Naurp db_old/src/os/os_cpu.c db_new/src/os/os_cpu.c +--- db_old/src/os/os_cpu.c 2012-05-11 12:57:54.000000000 -0500 ++++ db_new/src/os/os_cpu.c 2015-08-12 14:00:37.232498880 -0500 +@@ -40,6 +40,8 @@ __os_cpu_count() + long nproc; + + nproc = sysconf(_SC_NPROCESSORS_ONLN); ++ if (nproc > 1024) ++ nproc = 1024; + return ((u_int32_t)(nproc > 1 ? nproc : 1)); + #else + return (1); diff --git a/libdb.spec b/libdb.spec index fdb4ff8..07e6730 100644 --- a/libdb.spec +++ b/libdb.spec @@ -4,7 +4,7 @@ Summary: The Berkeley DB database library for C Name: libdb Version: 5.3.28 -Release: 34%{?dist} +Release: 35%{?dist} Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz # For mt19937db.c @@ -48,7 +48,10 @@ Patch35: checkpoint-opd-deadlock.patch Patch36: db-5.3.28-atomic_compare_exchange.patch # CDB race (rhbz #1099509) Patch37: libdb-cbd-race.patch - +# Limit concurrency to max 1024 CPUs (rhbz#1245410) +# A fix for the issue should be in an upstream release already +# https://community.oracle.com/message/13274780#13274780 +Patch38: libdb-limit-cpu.patch URL: http://www.oracle.com/database/berkeley-db/ License: BSD and LGPLv2 and Sleepycat @@ -250,6 +253,7 @@ popd %patch35 -p1 %patch36 -p1 %patch37 -p1 +%patch38 -p1 cd dist ./s_config @@ -445,6 +449,10 @@ mv man/* ${RPM_BUILD_ROOT}%{_mandir}/man1 %{_libdir}/libdb_java.so %changelog +* Wed Jan 16 2019 Petr Kubat - 5.3.28-35 +- Add patch to workaround issues on large systems (>1024 CPU) + Resolves: #1245410 + * Wed Sep 05 2018 Petr Kubat - 5.3.28-34 - Add patch for CDB race issue (#1099509)