From the Boost.MultiIndex library Release Notes:
Fixed a performance issue with hashed indices when rehashing at very large container sizes.
From the Boost.MultiIndex library Release Notes:
Fixed a performance issue with hashed indices when rehashing at very large container sizes.
From the Boost.MultiIndex library Release Notes:
> Fixed a performance issue with hashed indices when rehashing at very
large container sizes.
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35961.
<!--021abf342d371248e50ceaed478a90ca-->
See the guideline and AI policy for information on the review process.
| Type | Reviewers |
|---|---|
| ACK | 151henry151 |
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
My Guix build:
aarch64
79d98f3cd64625f94e14f19f288e7c59db3fa3efdb941eaca2d972eeec40d942 guix-build-94cb65945738/output/aarch64-linux-gnu/SHA256SUMS.part
167cf16b6cae9afaade039a52dfab846ee9810a02b05f1d04cd04c46b1e2fd73 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu-debug.tar.gz
093179e82d5826b0dab2d14b07efa88d4a7038f7a20291f4aa06e9a7b7732473 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu.tar.gz
942b858ca13feb4b6cf55887b77bb66189cc878b97f01f0fc292f9260e89c1d0 guix-build-94cb65945738/output/arm-linux-gnueabihf/SHA256SUMS.part
4ebdb0c4e1914c76f2c0d0a5dba8ce3845f6f901f965eddd198ce9eac32e1ca0 guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf-debug.tar.gz
454712f650d5b2e47cc3aff45ec5446adfac1f0f764777b5fe35a6ec86bd2e4c guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf.tar.gz
b4873a35e5b4a25b2026d3739dc60082cf3d159b85b34631320984a313d1302f guix-build-94cb65945738/output/arm64-apple-darwin/SHA256SUMS.part
c2690953062d17e59a26d11c8ddaec9e364aae505ec35458b4d185efd2299db3 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-codesigning.tar.gz
f45cd64c7f611bd78b5a2c1a0e6cf06f986b653d8985216d75a1b3cef6e7e2d5 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.tar.gz
f24087b28861b99291e2b346cef079d3e03211dba8e448b4feb22b687bbb1000 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.zip
c6a3bb7692ec695d3d56c252093f748888d3c08a9e0ba2871a2031ea3d18767f guix-build-94cb65945738/output/dist-archive/bitcoin-94cb65945738.tar.gz
bd2f538e84c0f07f99fd16d16f4abd27573ca3c85bb95925035a2cffaba34a47 guix-build-94cb65945738/output/powerpc64-linux-gnu/SHA256SUMS.part
bbf3eda008d231ac1cac864cddc2dcaca31e60b1a3fc7ff5e2a5afd3af856d23 guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu-debug.tar.gz
9099053ed8daa675a37d8cc3a8a8f82daf95f4520ae522467900910c35349bfa guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu.tar.gz
b020ffda06805c2a226c95ea436413c4c27d4c9ab0f5e35423df83d71501edd2 guix-build-94cb65945738/output/riscv64-linux-gnu/SHA256SUMS.part
129c4d171054cb261c94fa6e4c7e9650165896e61eba3d2cc7e64f863487efb7 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu-debug.tar.gz
b3ac9da33e18aa38cb7cb9cd72b8ca5c6a3cb005dbd01d30e29eee907e9372a8 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu.tar.gz
8310dceead40a341e96e229ad3e37693e4016bcc0b9fb1d48e880876fd09a27b guix-build-94cb65945738/output/x86_64-apple-darwin/SHA256SUMS.part
a7d50377378b36f82d4eafcd65b15b9c0fcc09a548f172e4ec2ee7c51d659873 guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-codesigning.tar.gz
8988bb255511849746d91f18b6c8cc9b2d536471ce12ad0a9aaa35554ffbb99a guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.tar.gz
3453eaa786c3b012748d0f5fec5afdc84b6f612fd80b81ca6a147bdd95fbbc1e guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.zip
c83a3c56e8a1bf9ca53b2ab700875b890503fc7300db85e21ab38ef66ed3e1b8 guix-build-94cb65945738/output/x86_64-linux-gnu/SHA256SUMS.part
43ccb6bc70064394af8f46968a0c8d73769dbdb4c92f86a9c4cadd19d6452ab3 guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu-debug.tar.gz
38474339849b7f7c0a0d7798bdaa7f1420c3130cd3314d7a3cb5bf01fefe620b guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu.tar.gz
74b188e7e32f97a70914d1639c7edf4958e8aacf7fce24bbc504671cb5c8860d guix-build-94cb65945738/output/x86_64-w64-mingw32/SHA256SUMS.part
2004626e54f2834bd74d8c468d8a287019f2cc0e49f3ec1208f3944cb7a84c29 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-codesigning.tar.gz
5281dccbf32f9f57dd34705acd17cb3a30db9ec192dbcd3930da636de47de412 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-debug.zip
ad26bcbfce4f31d6443af74971004304fe4993507f5eec47981e65cc78f1847b guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-setup-unsigned.exe
c2e1156400aa3dc0173ba43c3f2b9a63bca7925128382a130a15f8f2f97649bb guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-unsigned.zip
Tested ACK 94cb6594573876230840f0c8a563896c8700921b
Debian 13 / GCC 14.2.0.
Independent SHA-256 of boost-1.92.0-cmake.tar.gz matches the PR and the GitHub release sidecar:
f51707c27359a0df0cac1beada86de31bb5eed5e8285592dadec384df99c2984
Tag is boost-1.92.0 (no -1 re-release, unlike 1.91.0-1). BOOST_INCLUDE_LIBRARIES=multi_index;test still configures. Installed BOOST_VERSION is 109200. The 1.92 hashed-index reserve_for_insert floor (bucket_count()+1) is in the headers we built.
CMake used the depends 1.92 package (Boost_DIR=.../depends/x86_64-pc-linux-gnu/lib/cmake/Boost-1.92.0); test_bitcoin compiled hashed_index.hpp from depends/.../boost/include/.
Both hashed indices (txid, wtxid) live in CTxMemPool::indexed_transaction_set. The rehash bug that 1.92 fixes shows up around 50M elements; default -maxmempool=300 caps the pool in the low millions, more than an order of magnitude below where the float mantissa starts rounding. Still a fine depends bump.
make -C depends -j8 boost
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_GUI=OFF -DBoost_ROOT=$PWD/depends/x86_64-pc-linux-gnu
cmake --build build -j8 --target test_bitcoin
build/bin/test_bitcoin --run_test=mempool_tests,orphanage_tests,txrequest_tests
14 tests, no errors.
Guix builds for the default HOSTS are running; I will follow up with hashes when they finish.
@151henry151 your review comment reads like LLM output. The entire comment could be collapsed into: Checked the hash, did a depends build, and ran the test framework. What is a "GitHub release sidecar"? Please read our AI policy again.
when rehashing at very large container sizes.
Note that "very large" here is 200-400 million elements (https://github.com/boostorg/multi_index/pull/94#issuecomment-4338298921).
Sorry — my comment was too long, and "GitHub release sidecar" isn't a real thing. I meant the SHA-256 digest GitHub shows next to the release asset, which I compared against the hash in the PR.
The 50M I cited is the first size the multi_index#94 synthetic repro broke; 200–400 million is the production pain in that same thread. Neither is a mempool size.
Guix hashes match hebasto's:
<details> <summary>My Guix build</summary>
x86_64
79d98f3cd64625f94e14f19f288e7c59db3fa3efdb941eaca2d972eeec40d942 guix-build-94cb65945738/output/aarch64-linux-gnu/SHA256SUMS.part
167cf16b6cae9afaade039a52dfab846ee9810a02b05f1d04cd04c46b1e2fd73 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu-debug.tar.gz
093179e82d5826b0dab2d14b07efa88d4a7038f7a20291f4aa06e9a7b7732473 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu.tar.gz
942b858ca13feb4b6cf55887b77bb66189cc878b97f01f0fc292f9260e89c1d0 guix-build-94cb65945738/output/arm-linux-gnueabihf/SHA256SUMS.part
4ebdb0c4e1914c76f2c0d0a5dba8ce3845f6f901f965eddd198ce9eac32e1ca0 guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf-debug.tar.gz
454712f650d5b2e47cc3aff45ec5446adfac1f0f764777b5fe35a6ec86bd2e4c guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf.tar.gz
b4873a35e5b4a25b2026d3739dc60082cf3d159b85b34631320984a313d1302f guix-build-94cb65945738/output/arm64-apple-darwin/SHA256SUMS.part
c2690953062d17e59a26d11c8ddaec9e364aae505ec35458b4d185efd2299db3 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-codesigning.tar.gz
f45cd64c7f611bd78b5a2c1a0e6cf06f986b653d8985216d75a1b3cef6e7e2d5 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.tar.gz
f24087b28861b99291e2b346cef079d3e03211dba8e448b4feb22b687bbb1000 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.zip
c6a3bb7692ec695d3d56c252093f748888d3c08a9e0ba2871a2031ea3d18767f guix-build-94cb65945738/output/dist-archive/bitcoin-94cb65945738.tar.gz
bd2f538e84c0f07f99fd16d16f4abd27573ca3c85bb95925035a2cffaba34a47 guix-build-94cb65945738/output/powerpc64-linux-gnu/SHA256SUMS.part
bbf3eda008d231ac1cac864cddc2dcaca31e60b1a3fc7ff5e2a5afd3af856d23 guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu-debug.tar.gz
9099053ed8daa675a37d8cc3a8a8f82daf95f4520ae522467900910c35349bfa guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu.tar.gz
b020ffda06805c2a226c95ea436413c4c27d4c9ab0f5e35423df83d71501edd2 guix-build-94cb65945738/output/riscv64-linux-gnu/SHA256SUMS.part
129c4d171054cb261c94fa6e4c7e9650165896e61eba3d2cc7e64f863487efb7 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu-debug.tar.gz
b3ac9da33e18aa38cb7cb9cd72b8ca5c6a3cb005dbd01d30e29eee907e9372a8 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu.tar.gz
8310dceead40a341e96e229ad3e37693e4016bcc0b9fb1d48e880876fd09a27b guix-build-94cb65945738/output/x86_64-apple-darwin/SHA256SUMS.part
a7d50377378b36f82d4eafcd65b15b9c0fcc09a548f172e4ec2ee7c51d659873 guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-codesigning.tar.gz
8988bb255511849746d91f18b6c8cc9b2d536471ce12ad0a9aaa35554ffbb99a guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.tar.gz
3453eaa786c3b012748d0f5fec5afdc84b6f612fd80b81ca6a147bdd95fbbc1e guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.zip
c83a3c56e8a1bf9ca53b2ab700875b890503fc7300db85e21ab38ef66ed3e1b8 guix-build-94cb65945738/output/x86_64-linux-gnu/SHA256SUMS.part
43ccb6bc70064394af8f46968a0c8d73769dbdb4c92f86a9c4cadd19d6452ab3 guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu-debug.tar.gz
38474339849b7f7c0a0d7798bdaa7f1420c3130cd3314d7a3cb5bf01fefe620b guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu.tar.gz
74b188e7e32f97a70914d1639c7edf4958e8aacf7fce24bbc504671cb5c8860d guix-build-94cb65945738/output/x86_64-w64-mingw32/SHA256SUMS.part
2004626e54f2834bd74d8c468d8a287019f2cc0e49f3ec1208f3944cb7a84c29 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-codesigning.tar.gz
5281dccbf32f9f57dd34705acd17cb3a30db9ec192dbcd3930da636de47de412 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-debug.zip
ad26bcbfce4f31d6443af74971004304fe4993507f5eec47981e65cc78f1847b guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-setup-unsigned.exe
c2e1156400aa3dc0173ba43c3f2b9a63bca7925128382a130a15f8f2f97649bb guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-unsigned.zip
</details>
my guix Build Output
Host architecture: aarch64
Commit: 94cb659
79d98f3cd64625f94e14f19f288e7c59db3fa3efdb941eaca2d972eeec40d942 guix-build-94cb65945738/output/aarch64-linux-gnu/SHA256SUMS.part
167cf16b6cae9afaade039a52dfab846ee9810a02b05f1d04cd04c46b1e2fd73 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu-debug.tar.gz
093179e82d5826b0dab2d14b07efa88d4a7038f7a20291f4aa06e9a7b7732473 guix-build-94cb65945738/output/aarch64-linux-gnu/bitcoin-94cb65945738-aarch64-linux-gnu.tar.gz
942b858ca13feb4b6cf55887b77bb66189cc878b97f01f0fc292f9260e89c1d0 guix-build-94cb65945738/output/arm-linux-gnueabihf/SHA256SUMS.part
4ebdb0c4e1914c76f2c0d0a5dba8ce3845f6f901f965eddd198ce9eac32e1ca0 guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf-debug.tar.gz
454712f650d5b2e47cc3aff45ec5446adfac1f0f764777b5fe35a6ec86bd2e4c guix-build-94cb65945738/output/arm-linux-gnueabihf/bitcoin-94cb65945738-arm-linux-gnueabihf.tar.gz
b4873a35e5b4a25b2026d3739dc60082cf3d159b85b34631320984a313d1302f guix-build-94cb65945738/output/arm64-apple-darwin/SHA256SUMS.part
c2690953062d17e59a26d11c8ddaec9e364aae505ec35458b4d185efd2299db3 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-codesigning.tar.gz
f45cd64c7f611bd78b5a2c1a0e6cf06f986b653d8985216d75a1b3cef6e7e2d5 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.tar.gz
f24087b28861b99291e2b346cef079d3e03211dba8e448b4feb22b687bbb1000 guix-build-94cb65945738/output/arm64-apple-darwin/bitcoin-94cb65945738-arm64-apple-darwin-unsigned.zip
c6a3bb7692ec695d3d56c252093f748888d3c08a9e0ba2871a2031ea3d18767f guix-build-94cb65945738/output/dist-archive/bitcoin-94cb65945738.tar.gz
bd2f538e84c0f07f99fd16d16f4abd27573ca3c85bb95925035a2cffaba34a47 guix-build-94cb65945738/output/powerpc64-linux-gnu/SHA256SUMS.part
bbf3eda008d231ac1cac864cddc2dcaca31e60b1a3fc7ff5e2a5afd3af856d23 guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu-debug.tar.gz
9099053ed8daa675a37d8cc3a8a8f82daf95f4520ae522467900910c35349bfa guix-build-94cb65945738/output/powerpc64-linux-gnu/bitcoin-94cb65945738-powerpc64-linux-gnu.tar.gz
b020ffda06805c2a226c95ea436413c4c27d4c9ab0f5e35423df83d71501edd2 guix-build-94cb65945738/output/riscv64-linux-gnu/SHA256SUMS.part
129c4d171054cb261c94fa6e4c7e9650165896e61eba3d2cc7e64f863487efb7 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu-debug.tar.gz
b3ac9da33e18aa38cb7cb9cd72b8ca5c6a3cb005dbd01d30e29eee907e9372a8 guix-build-94cb65945738/output/riscv64-linux-gnu/bitcoin-94cb65945738-riscv64-linux-gnu.tar.gz
8310dceead40a341e96e229ad3e37693e4016bcc0b9fb1d48e880876fd09a27b guix-build-94cb65945738/output/x86_64-apple-darwin/SHA256SUMS.part
a7d50377378b36f82d4eafcd65b15b9c0fcc09a548f172e4ec2ee7c51d659873 guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-codesigning.tar.gz
8988bb255511849746d91f18b6c8cc9b2d536471ce12ad0a9aaa35554ffbb99a guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.tar.gz
3453eaa786c3b012748d0f5fec5afdc84b6f612fd80b81ca6a147bdd95fbbc1e guix-build-94cb65945738/output/x86_64-apple-darwin/bitcoin-94cb65945738-x86_64-apple-darwin-unsigned.zip
c83a3c56e8a1bf9ca53b2ab700875b890503fc7300db85e21ab38ef66ed3e1b8 guix-build-94cb65945738/output/x86_64-linux-gnu/SHA256SUMS.part
43ccb6bc70064394af8f46968a0c8d73769dbdb4c92f86a9c4cadd19d6452ab3 guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu-debug.tar.gz
38474339849b7f7c0a0d7798bdaa7f1420c3130cd3314d7a3cb5bf01fefe620b guix-build-94cb65945738/output/x86_64-linux-gnu/bitcoin-94cb65945738-x86_64-linux-gnu.tar.gz
74b188e7e32f97a70914d1639c7edf4958e8aacf7fce24bbc504671cb5c8860d guix-build-94cb65945738/output/x86_64-w64-mingw32/SHA256SUMS.part
2004626e54f2834bd74d8c468d8a287019f2cc0e49f3ec1208f3944cb7a84c29 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-codesigning.tar.gz
5281dccbf32f9f57dd34705acd17cb3a30db9ec192dbcd3930da636de47de412 guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-debug.zip
ad26bcbfce4f31d6443af74971004304fe4993507f5eec47981e65cc78f1847b guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-setup-unsigned.exe
c2e1156400aa3dc0173ba43c3f2b9a63bca7925128382a130a15f8f2f97649bb guix-build-94cb65945738/output/x86_64-w64-mingw32/bitcoin-94cb65945738-win64-unsigned.zip