Skip to content

Commit 2b6e07f

Browse files
chore(deps): bump redb from 3.1.3 to 4.1.0 (#4172)
Bumps [redb](https://github.com/cberner/redb) from 3.1.3 to 4.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/cberner/redb/releases">redb's releases</a>.</em></p> <blockquote> <h2>4.1.0</h2> <p><strong>This release contains a large number of bug fixes discovered by AI coding agents</strong></p> <ul> <li>Fix a bug where <code>MultimapValue::len()</code> and <code>is_empty()</code> returned stale counts after consuming entries via <code>next_back()</code>.</li> <li>Fix a bug where <code>restore_savepoint()</code> used in a non-<code>Immediate</code> durability transaction and when there are persistent savepoints newer than the one being restored, could fail with <code>SavepointError::InvalidSavepoint</code>, but the savepoint would actually be partially applied. The call now fails up front with <code>SavepointError::ImmediateDurabilityRequired</code>.</li> <li>Fix a bug in <code>restore_savepoint()</code> where modifications made earlier in the transaction might not be reverted.</li> <li>Fix a bug where renaming a table that was already modified in the same transaction could cause the database to become corrupted.</li> <li>Fix a bug where calling <code>restore_savepoint()</code> after modifying a table in the same transaction could cause the table to become corrupted in a future transaction.</li> <li>Fix a panic when <code>delete_table()</code> was called on a table that had been modified in the same transaction.</li> <li>Fix a panic in <code>restore_savepoint()</code> when passed a <code>Savepoint</code> from a different <code>Database</code>. <code>SavepointError::InvalidSavepoint</code> is now returned instead.</li> <li>Fix a bug where a transaction that created a persistent savepoint and was then aborted could cause the database file to grow excessively, until the <code>Database</code> was dropped.</li> <li>Fix a panic in <code>check_integrity()</code> when called while another transaction is still alive. <code>DatabaseError::TransactionInProgress</code> is now returned instead.</li> <li>Fix a bug where aborting a transaction that called <code>restore_savepoint()</code> with a savepoint when a newer savepoint existed could cause database space to be leaked.</li> <li>Fix a bug where aborting a transaction that called <code>restore_savepoint()</code> would leave more recent savepoints invalid.</li> <li>Improve performance when reading concurrently from multiple threads. Around 15% speedup on some benchmarks.</li> <li>Optimize cache usage, and general write performance. Around 1.5x speedup on some benchmarks.</li> <li>Optimize memory usage.</li> <li>Other performance optimizations.</li> </ul> <h2>4.0.0</h2> <ul> <li>Implement <code>Drop</code> on <code>AccessGuardMut</code> and <code>AccessGuardMutInPlace</code>, which requires that these be dropped before the <code>Table</code> they borrow from. This fixes a critical bug where the accessor could outlive the <code>Table</code>, and be dropped after the transaction had already committed. This could cause data loss due to the data in the accessor being written out after the transaction had already completed.</li> <li>Remove <code>Legacy</code> type. To migrate off the <code>Legacy</code> type, use the <code>Legacy</code> type in the 3.x release and copy the data to a table with plain tuples, before upgrading to the 4.x release.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/cberner/redb/blob/master/CHANGELOG.md">redb's changelog</a>.</em></p> <blockquote> <h2>4.1.0 - 2026-04-19</h2> <p><strong>This release contains a large number of bug fixes discovered by AI coding agents</strong></p> <ul> <li>Fix a bug where <code>MultimapValue::len()</code> and <code>is_empty()</code> returned stale counts after consuming entries via <code>next_back()</code>.</li> <li>Fix a bug where <code>restore_savepoint()</code> used in a non-<code>Immediate</code> durability transaction and when there are persistent savepoints newer than the one being restored, could fail with <code>SavepointError::InvalidSavepoint</code>, but the savepoint would actually be partially applied. The call now fails up front with <code>SavepointError::ImmediateDurabilityRequired</code>.</li> <li>Fix a bug in <code>restore_savepoint()</code> where modifications made earlier in the transaction might not be reverted.</li> <li>Fix a bug where renaming a table that was already modified in the same transaction could cause the database to become corrupted.</li> <li>Fix a bug where calling <code>restore_savepoint()</code> after modifying a table in the same transaction could cause the table to become corrupted in a future transaction.</li> <li>Fix a panic when <code>delete_table()</code> was called on a table that had been modified in the same transaction.</li> <li>Fix a panic in <code>restore_savepoint()</code> when passed a <code>Savepoint</code> from a different <code>Database</code>. <code>SavepointError::InvalidSavepoint</code> is now returned instead.</li> <li>Fix a bug where a transaction that created a persistent savepoint and was then aborted could cause the database file to grow excessively, until the <code>Database</code> was dropped.</li> <li>Fix a panic in <code>check_integrity()</code> when called while another transaction is still alive. <code>DatabaseError::TransactionInProgress</code> is now returned instead.</li> <li>Fix a bug where aborting a transaction that called <code>restore_savepoint()</code> with a savepoint when a newer savepoint existed could cause database space to be leaked.</li> <li>Fix a bug where aborting a transaction that called <code>restore_savepoint()</code> would leave more recent savepoints invalid.</li> <li>Improve performance when reading concurrently from multiple threads. Around 15% speedup on some benchmarks.</li> <li>Optimize cache usage, and general write performance. Around 1.5x speedup on some benchmarks.</li> <li>Optimize memory usage.</li> <li>Other performance optimizations.</li> </ul> <h2>4.0.0 - 2026-04-02</h2> <ul> <li>Implement <code>Drop</code> on <code>AccessGuardMut</code> and <code>AccessGuardMutInPlace</code>, which requires that these be dropped before the <code>Table</code> they borrow from. This fixes a critical bug where the accessor could outlive the <code>Table</code>, and be dropped after the transaction had already committed. This could cause data loss due to the data in the accessor being written out after the transaction had already completed.</li> <li>Remove <code>Legacy</code> type. To migrate off the <code>Legacy</code> type, use the <code>Legacy</code> type in the 3.x release and copy the data to a table with plain tuples, before upgrading to the 4.x release.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/cberner/redb/commit/6ed1f981ba4deab0b2adbdd7bccb46ec409b2191"><code>6ed1f98</code></a> Bump version to 4.1.0</li> <li><a href="https://github.com/cberner/redb/commit/0a87cb7c6bbef9d42a3d13317b5beaf4063e16e6"><code>0a87cb7</code></a> Update changelog</li> <li><a href="https://github.com/cberner/redb/commit/03966a5050a3a6bef1045032d698f65b84a1eec9"><code>03966a5</code></a> Require callers of get_page to provide a PageHint</li> <li><a href="https://github.com/cberner/redb/commit/a75927ff26d64f389e0050140654a39f239213a3"><code>a75927f</code></a> Remove some TODO comments</li> <li><a href="https://github.com/cberner/redb/commit/a39779be8857b644476e64ddbe557082dd03644d"><code>a39779b</code></a> Avoid allocating a page for a branch that will be immediately merged</li> <li><a href="https://github.com/cberner/redb/commit/6374134252e7e128e5f98a4f04cf8bfdab9b3191"><code>6374134</code></a> Document that Table{,Multimap}Definition::new panic on empty names</li> <li><a href="https://github.com/cberner/redb/commit/ba043e3816a81d93734e4533bc87465885496f61"><code>ba043e3</code></a> Avoid copying keys in leaf overwrite paths</li> <li><a href="https://github.com/cberner/redb/commit/f42c468e008cfb7331d685ab2b675934bcec12ca"><code>f42c468</code></a> Fix MultimapValue::next_back() not decrementing remaining counter</li> <li><a href="https://github.com/cberner/redb/commit/3756148e34e912206a382ef4224b3942d2d8aaa4"><code>3756148</code></a> Clarify API contract for Key and Value traits</li> <li><a href="https://github.com/cberner/redb/commit/45523720a87ca0803264335e28538baabe6e04ae"><code>4552372</code></a> Consolidate WriteTransaction savepoint lifecycle state</li> <li>Additional commits viewable in <a href="https://github.com/cberner/redb/compare/v3.1.3...v4.1.0">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent a187130 commit 2b6e07f

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

iroh-dns-server/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ lru = "0.16.3"
3535
mainline = "6"
3636
n0-future = "0.3"
3737
rcgen = "0.14"
38-
redb = "3.1.0"
38+
redb = "4.1.0"
3939
regex = "1.10.3"
4040
rustls = { version = "0.23.33", default-features = false }
4141
serde = { version = "1", features = ["derive"] }

0 commit comments

Comments
 (0)