From 396db42a5a50e8d175a775bd7bf12f6a2ac70c8c Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:24:42 -0400 Subject: [PATCH 1/6] =?UTF-8?q?Upgrade=20RocksDB=209.6.1=20=E2=86=92=2011.?= =?UTF-8?q?0.4,=20enable=20PORTABLE=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SIGILL crash in HistogramBucketMapper on Linux was caused by RocksDB auto-detecting and using SSE4.2/AVX instructions at build time. When the binary runs on a CPU without those features, it crashes with SIGILL. Adding -DPORTABLE=ON disables CPU-specific optimizations. Also upgrades from 9.6.1 to 11.0.4. The API surface used by multiplier (DB::Open, Get, Put, Options) is stable across versions. Co-Authored-By: Claude Opus 4.6 (1M context) --- vendor/rocksdb/CMakeLists.txt | 1 + vendor/rocksdb/src | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/vendor/rocksdb/CMakeLists.txt b/vendor/rocksdb/CMakeLists.txt index 684e3b493..9a6749c3f 100644 --- a/vendor/rocksdb/CMakeLists.txt +++ b/vendor/rocksdb/CMakeLists.txt @@ -75,6 +75,7 @@ execute_process(COMMAND ${CMAKE_COMMAND} -DFAIL_ON_WARNINGS:BOOL=OFF -DWITH_DYNAMIC_EXTENSION:BOOL=OFF -DROCKSDB_BUILD_SHARED:BOOL=OFF + -DPORTABLE:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DUSE_RTTI:BOOL=ON "${src_dir}" diff --git a/vendor/rocksdb/src b/vendor/rocksdb/src index 13d5230e5..a90855425 160000 --- a/vendor/rocksdb/src +++ b/vendor/rocksdb/src @@ -1 +1 @@ -Subproject commit 13d5230e5da650cf93e6dccb389c82d316d355c6 +Subproject commit a90855425128906216b7820de49ab81afe830700 From 29c982ca074ad31f0aa859aba875cbf5df618f66 Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:26:07 -0400 Subject: [PATCH 2/6] =?UTF-8?q?Upgrade=20zstd=201.5.6=20=E2=86=92=201.5.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Minor patch release with bug fixes and compression improvements. Co-Authored-By: Claude Opus 4.6 (1M context) --- vendor/zstd/src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/zstd/src b/vendor/zstd/src index 6b16169cc..f8745da6f 160000 --- a/vendor/zstd/src +++ b/vendor/zstd/src @@ -1 +1 @@ -Subproject commit 6b16169ccf018fc310dd52353c66ba2759b7cffa +Subproject commit f8745da6ff1ad1e7bab384bd1f9d742439278e99 From de037b3ec140e7e7a2832acca3caaeff514bd432 Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:26:52 -0400 Subject: [PATCH 3/6] =?UTF-8?q?Upgrade=20Cap'n=20Proto=201.1.0=20=E2=86=92?= =?UTF-8?q?=201.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three major versions of improvements. Generated headers will be regenerated by capnp_generate_cpp at build time. Co-Authored-By: Claude Opus 4.6 (1M context) --- vendor/capnproto/src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/capnproto/src b/vendor/capnproto/src index f5531718b..8b892a8a1 160000 --- a/vendor/capnproto/src +++ b/vendor/capnproto/src @@ -1 +1 @@ -Subproject commit f5531718b95c2ad4fcedc624e0d46866455007f4 +Subproject commit 8b892a8a11a632f5d52b877a49728808a142379a From 837b4784393361c12e6e8b55edb8486e6be8f2f1 Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:28:23 -0400 Subject: [PATCH 4/6] Upgrade vendored dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit abseil: 20250127.0 → 20260107.1 glog: 0.6.0+62 → 0.7.1 gflags: 2.2.2+47 → 2.3.0 re2: 2024-07-02 → 2025-11-05 reproc: 14.2.5 → 14.2.7 concurrentqueue: 1.0.4 → 1.0.5 Co-Authored-By: Claude Opus 4.6 (1M context) --- vendor/abseil/src | 2 +- vendor/concurrentqueue/src | 2 +- vendor/gflags/src | 2 +- vendor/glog/src | 2 +- vendor/re2/src | 2 +- vendor/reproc/src | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/abseil/src b/vendor/abseil/src index f7c22f52a..255c84dad 160000 --- a/vendor/abseil/src +++ b/vendor/abseil/src @@ -1 +1 @@ -Subproject commit f7c22f52a748761b93c50a27b06afef000b26f95 +Subproject commit 255c84dadd029fd8ad25c5efb5933e47beaa00c7 diff --git a/vendor/concurrentqueue/src b/vendor/concurrentqueue/src index 6dd38b8a1..9afb99746 160000 --- a/vendor/concurrentqueue/src +++ b/vendor/concurrentqueue/src @@ -1 +1 @@ -Subproject commit 6dd38b8a1dbaa7863aa907045f32308a56a6ff5d +Subproject commit 9afb99746f0f5fc94ac8aef737053ae0481ba8d1 diff --git a/vendor/gflags/src b/vendor/gflags/src index a738fdf93..33bb3461e 160000 --- a/vendor/gflags/src +++ b/vendor/gflags/src @@ -1 +1 @@ -Subproject commit a738fdf9338412f83ab3f26f31ac11ed3f3ec4bd +Subproject commit 33bb3461e10864b5406353d3a1fb7ff34c2314b8 diff --git a/vendor/glog/src b/vendor/glog/src index 931323df2..7b134a5c8 160000 --- a/vendor/glog/src +++ b/vendor/glog/src @@ -1 +1 @@ -Subproject commit 931323df212c46e3a01b743d761c6ab8dc9f0d09 +Subproject commit 7b134a5c82c0c0b5698bb6bf7a835b230c5638e4 diff --git a/vendor/re2/src b/vendor/re2/src index 6dcd83d60..927f5d53c 160000 --- a/vendor/re2/src +++ b/vendor/re2/src @@ -1 +1 @@ -Subproject commit 6dcd83d60f7944926bfd308cc13979fc53dd69ca +Subproject commit 927f5d53caf8111721e734cf24724686bb745f55 diff --git a/vendor/reproc/src b/vendor/reproc/src index 3179928ae..06034a7fc 160000 --- a/vendor/reproc/src +++ b/vendor/reproc/src @@ -1 +1 @@ -Subproject commit 3179928ae7b085e41dfb846d987519fa7c12ffb3 +Subproject commit 06034a7fca1ec46eddb4997f7764db89380c5216 From 2802a219d24fa575bfdae6c54a55dca3d5ddf682 Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:37:18 -0400 Subject: [PATCH 5/6] Fix RocksDB 11.x API change: DB::Open takes unique_ptr* RocksDB 11.x changed DB::Open's third parameter from DB** to unique_ptr*. Update IdStore to match. Co-Authored-By: Claude Opus 4.6 (1M context) --- bin/Index/IdStore.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/Index/IdStore.cpp b/bin/Index/IdStore.cpp index 9a159cc48..36507ba3e 100644 --- a/bin/Index/IdStore.cpp +++ b/bin/Index/IdStore.cpp @@ -289,8 +289,8 @@ class IdStoreImpl { ExitRocksDB(); } - IdStoreImpl(rocksdb::DB *rocks_db_) - : rocks_db(rocks_db_), + IdStoreImpl(std::unique_ptr rocks_db_) + : rocks_db(std::move(rocks_db_)), cf_handle(rocks_db->DefaultColumnFamily()), next_file_index(configs.emplace_back( "META:NEXT_FILE_INDEX", "FID", 1u, mx::kMaxFileId)), @@ -404,14 +404,14 @@ std::shared_ptr IdStoreImpl::Open(std::filesystem::path path) { return already_open_db; } - rocksdb::DB *rocks_db_ptr = nullptr; + std::unique_ptr rocks_db_ptr; auto status = rocksdb::DB::Open(DBOptions(), name, &rocks_db_ptr); CHECK(status.ok()) << "Unable to open RocksDB database at " << abs_kvdir << ": " << status.ToString(); - auto db_ptr = std::make_shared(rocks_db_ptr); + auto db_ptr = std::make_shared(std::move(rocks_db_ptr)); db_ptr_ref = db_ptr; return db_ptr; } From 2e5a23ea929a64db9374bf74e2c2f967c5e4f6a6 Mon Sep 17 00:00:00 2001 From: pgoodman Date: Wed, 15 Apr 2026 10:37:51 -0400 Subject: [PATCH 6/6] Fix build errors from vendor upgrades - Add missing include in Main.cpp (getpid/read no longer transitively included after glog 0.7.1 upgrade) - Remove const from IdStoreImpl::rocks_db to allow make_shared construction with unique_ptr move Co-Authored-By: Claude Opus 4.6 (1M context) --- bin/Index/IdStore.cpp | 4 ++-- bin/Index/Main.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/Index/IdStore.cpp b/bin/Index/IdStore.cpp index 36507ba3e..0b81fef6f 100644 --- a/bin/Index/IdStore.cpp +++ b/bin/Index/IdStore.cpp @@ -241,8 +241,8 @@ struct IdConfig { class IdStoreImpl { public: - const std::unique_ptr rocks_db; - rocksdb::ColumnFamilyHandle * const cf_handle; + std::unique_ptr rocks_db; + rocksdb::ColumnFamilyHandle *cf_handle; std::deque configs; diff --git a/bin/Index/Main.cpp b/bin/Index/Main.cpp index 003aa9d1b..64f04198f 100644 --- a/bin/Index/Main.cpp +++ b/bin/Index/Main.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include