diff --git a/.gitignore b/.gitignore index 994dfcd..5d9ed99 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /LMDB_0.9.20.tar.gz /LMDB_0.9.21.tar.gz /LMDB_0.9.22.tar.gz +/LMDB_0.9.23.tar.gz diff --git a/fix-remove-loose-pg-from-dirty-list.patch b/fix-remove-loose-pg-from-dirty-list.patch deleted file mode 100644 index 6b8f1e3..0000000 --- a/fix-remove-loose-pg-from-dirty-list.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 1ffe472a080fcd3c7dab6e352848703ad7adbe14 Mon Sep 17 00:00:00 2001 -From: Howard Chu -Date: Fri, 22 Jun 2018 16:30:13 +0100 -Subject: [PATCH] ITS#8756 remove loose pg from dirty list in freelist_save - ---- - libraries/liblmdb/mdb.c | 33 ++++++++++++++++++++++++++++++++- - 1 file changed, 32 insertions(+), 1 deletion(-) - -diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c -index a487e156..63872c92 100644 ---- a/libraries/liblmdb/mdb.c -+++ b/libraries/liblmdb/mdb.c -@@ -3444,10 +3444,41 @@ mdb_freelist_save(MDB_txn *txn) - * we may be unable to return them to me_pghead. - */ - MDB_page *mp = txn->mt_loose_pgs; -+ MDB_ID2 *dl = txn->mt_u.dirty_list; -+ unsigned x; - if ((rc = mdb_midl_need(&txn->mt_free_pgs, txn->mt_loose_count)) != 0) - return rc; -- for (; mp; mp = NEXT_LOOSE_PAGE(mp)) -+ for (; mp; mp = NEXT_LOOSE_PAGE(mp)) { - mdb_midl_xappend(txn->mt_free_pgs, mp->mp_pgno); -+ /* must also remove from dirty list */ -+ if (txn->mt_flags & MDB_TXN_WRITEMAP) { -+ for (x=1; x<=dl[0].mid; x++) -+ if (dl[x].mid == mp->mp_pgno) -+ break; -+ mdb_tassert(txn, x <= dl[0].mid); -+ } else { -+ x = mdb_mid2l_search(dl, mp->mp_pgno); -+ mdb_tassert(txn, dl[x].mid == mp->mp_pgno); -+ } -+ dl[x].mptr = NULL; -+ mdb_dpage_free(env, mp); -+ } -+ { -+ /* squash freed slots out of the dirty list */ -+ unsigned y; -+ for (y=1; dl[y].mptr && y <= dl[0].mid; y++); -+ if (y <= dl[0].mid) { -+ for(x=y, y++;;) { -+ while (!dl[y].mptr && y <= dl[0].mid) y++; -+ if (y > dl[0].mid) break; -+ dl[x++] = dl[y++]; -+ } -+ dl[0].mid = x-1; -+ } else { -+ /* all slots freed */ -+ dl[0].mid = 0; -+ } -+ } - txn->mt_loose_pgs = NULL; - txn->mt_loose_count = 0; - } diff --git a/lmdb.spec b/lmdb.spec index 178bff0..ad5d114 100644 --- a/lmdb.spec +++ b/lmdb.spec @@ -2,8 +2,8 @@ %global archive_path libraries/lib%{name} Name: lmdb -Version: 0.9.22 -Release: 4%{?dist} +Version: 0.9.23 +Release: 1%{?dist} Summary: Memory-mapped key-value database License: OpenLDAP @@ -14,9 +14,6 @@ Source1: lmdb.pc.in Patch0: lmdb-make.patch Patch1: lmdb-s390-check.patch -# Upstream fix for rhbz#1645114 -Patch2: fix-remove-loose-pg-from-dirty-list.patch - BuildRequires: make BuildRequires: gcc BuildRequires: doxygen @@ -57,8 +54,6 @@ The %{name}-doc package contains automatically generated documentation for %{nam %patch0 -p1 -b .make %patch1 -p1 -b .s390-check -%patch2 -p1 -b .page_dirty - %build pushd %{archive_path} @@ -126,6 +121,9 @@ popd %changelog +* Wed Jan 09 2019 Tomas Krizek - 0.9.23-1 +- Updated to 0.9.23 + * Mon Nov 05 2018 Jan Staněk - 0.9.22-4 - Import upstream fix for rhbz#1645114 diff --git a/sources b/sources index 8337e13..f612e09 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (LMDB_0.9.22.tar.gz) = 49afca13b9683ed571c274380bb5e111236903b12d19bcb8781d6bbc00f711766b0d62de0b36536c85309cc9ff9e9d0aaa708e27bae9be6cfcaed8ba91e5545d +SHA512 (LMDB_0.9.23.tar.gz) = 47466a96ce288d18d489acf1abf811aa973649848a4cac31f71e1f25ea781a055ebd6616d2d630214b2df2f146f12609c82d65be0196f49d6b46a6c96464e120