- Check before so that if it's cleared during the fetch, the node is not
lost when the archive DB is deleted. Check after the fetch so that if
a rotation starts during the fetch, we can be sure this node is
preserved.
* Initialize inFlight before the backend pointers to avoid race
conditions.
> An archive fetch can begin before the swap and finish after rotate()
> and its scope guard have cleared rotationInFlight_. This check then
> skips the copy even though the object came from the backend just
> retired; the fetch can return that object to a SHAMap cache after
> the old backend is removed, leaving a node in memory with no durable
> copy.
* XRPLF/develop: (28 commits)
test: Add more tests for granular permissions (8459)
fix: Enforce that MPT issuance flags are never cleared (8152)
feat: Allow lending transactions in Batch (8244)
feat: Add full support for all objects in `ledger_entry` (6319)
build: Define XRPL_ASAN, XRPL_TSAN, and XRPL_UBSAN compile definitions (8483)
refactor: Use LedgerHashesEntry everywhere (8369)
refactor: Use EscrowEntry everywhere (8354)
chore: Update nix flake file (8479)
refactor: Use FeeSettingsEntry everywhere (8370)
fix: Add string type validation for channel_id and signature (7582)
test: Migrate three beast suites from beast::unit_test to gtest (7993)
refactor: Build Throw messages with std::format (8474)
feat: Implement Confidential mpt holder key update (8266)
fix: Do not block MPToken deletion on unrelated confidential balances (8209)
fix: Enable the large Number mantissa with MPTokensV2 (8330)
chore: Add ignore revs for recent style changes (8463)
ci: Make release always go into stable channel (8469)
test: Restore config test environment variables with a guard (8333)
ci: Add more guardrails for merging releases back to develop (8466)
feat: Add MPT transaction stream to `subscribe` RPC (5671)
...
* commit 'ddbc5f1a24': (78 commits)
fix: Resolve IntrusivePointer leak (8328)
chore: CamelCase for typedef/using in `clang-tidy` (8177)
refactor: Make the config name constants constexpr string views (8332)
fix: Count cluster traffic only from cluster members (8319)
fix: Queue a transaction hash only for peers that asked for it (8309)
docs: Add notes about common acronyms (8298)
build: Support custom release channel (8326)
fix: Round up MPT owner cost in book_offers running balance (8213)
fix: Count cluster messages as cluster traffic (8308)
build: Publish a Docker image from GitHub (8322)
refactor: Add initial integration of `rpc-spec` (8284)
feat: Introduce Cosign v1 amendment with TransactionProposalCreate (8205)
chore: [DEPENDABOT] bump cxx from 1.0.199 to 1.0.202 in /crates in the rust-dependencies group across 1 directory (8224)
test: Add source location to MPTTester (8275)
refactor: Unify `upperBound` and `lowerBound` into `boundHelper` (7943)
test: Clean up ConfidentialTransfer test helpers (8265)
style: Precommit hook for gtest naming (8026)
fix: Add CTID to ledger command expanded transactions (6401)
test: Share peer test doubles across the overlay and app suites (8246)
feat: Support ConfidentialMPTMirrorUpdate (8192)
...
* commit '827b50f169eeb53b3f5696e7b01079c5d6a8940e~': (48 commits)
fix: Add signature prefixes for sfCounterpartySignature and sfSponsorSignature (8162)
build: Verify glibc version was determined in debian package (8170)
fix: Recycle the escrow reserve in EscrowCancel and EscrowFinish (8142)
ci: Update pre-commit SHA (8169)
docs: Use consistent heading levels in PR template (8155)
ci: Update prepare-runner SHA (8168)
fix: Correct and simplify Linux packaging (8165)
fix: Reinforce the priority of AMMClawback in case of insufficient reserves (7796)
fix: PermissionedDEX (CreateOffer/Payment) never deletes expired credentials (6827)
fix: Clamp the depth used to index selectBranch's key byte (7941)
fix: Revert credential cleanup for pseudo-accounts (8161)
fix: Allow zero-value MPT vault withdraw when the asset holding is missing (8153)
fix: Treat an existing IOU line as a no-op in addEmptyHolding (8154)
docs: Add AGENTS.md/CLAUDE.md for AI coding agent guidance (8067)
fix: Add 60s buffer before closed-ended vault redemption (8151)
fix: Correct fee-payer XRP delta in ValidVault for sponsored VaultWithdraw (8141)
fix: Keep LoanBrokerDelete valid for auth-required MPT cover (8144)
fix: Unblock VaultSet and cash-basis LoanSet at AssetsMaximum (8143)
fix: Keep VaultDeposit share count after the assetsTotal clamp (8140)
refactor: Add common helper function for injected metadata fields in RPCs (5706)
...
* XRPLF/ximinez/online-delete-gaps:
Add a 1/4s delay so the server doesn't restore the removed ledger
Reapply "experiment: find where the deleted ledger is being put back"
fix: Add assert for account_info flags (7987)
* XRPLF/ximinez/online-delete-gaps:
fix: Reject vault deposits that move nothing from the depositor (8014)
experiment: find where the deleted ledger is being put back
clang-tidy: Use switch. Duh
Fix timing issues in the gap test
perf: Speed up addition time for drastically different exponents (7825)
refactor: Collapse transactions.macro settings into a TxSettings struct (8001)
fix: Enforce MPT balance invariants under the latest cleanup amendment (7889)
fix: Prevent AMM auction slots from being acquired at zero cost when trading fee is zero (7430)
docs: Fix yum installation baseurl (8066)
fix: Return specific and consistent errors from vault_info (8015)
ci: Save cargo cache only from develop by default (8063)
fix: Check credential for LoanBrokerCoverWithdraw and VaultWithdraw (7107)
build: Suppress MSVC linker warning LNK4099 (8049)
chore: [DEPENDABOT] Bump cxx from 1.0.198 to 1.0.199 in /crates in the rust-dependencies group across 1 directory (8050)
build: Use debian `any` distribution & signed (hosted) rpm repo (8053)
ci: Do not cache cargo binaries (8062)
* XRPLF/develop:
fix: Reject vault deposits that move nothing from the depositor (8014)
perf: Speed up addition time for drastically different exponents (7825)
refactor: Collapse transactions.macro settings into a TxSettings struct (8001)
- The coverage build exposed that the timing was more sensitive than
I had thought. Force things to run in the order I expect by changing
the server mode (via NetworkOPs::setMode).
- Log the "waiting" messages at warning level once the delay reaches 1/4
of the way to the circuit breaker cutoff.
- Also fix the exception message on configuration validation.
- Adds a "max_waiting_ledgers" config, which defaults to the
"online_delete" value. If the rotation gets stuck for that number of
ledgers, abort the rotation and try again later. The existing gap will
be ignored on the next rotation.
- Create a new HealthResult::Expired. Update most healthWait() call
sites to account for the new possible result. Pay special note to the
calls in SHAMapStoreImp::run() to ensure they don't exit the thread
prematurely, or keep rotating when they should not.
- Did a little clean up while I was in there.
- Update tests.
- Check that recovery_wait_time is non-zero.
- In healthWait(), explicitly check whether the only missing ledger is
the current validated ledger, in the process of being built. If so,
log lower, and only wait 1/10 of the time.
- Add the special case from #7793 that will let rotation run if the node
is disconnected.
- Convert the inFlight tracking to a simple bool instead of ledger
index. In testing, almost no nodes were skipped anyway, so it's not
a signficant factor.
- Reset the duplicate node count when reading it.
- Update some comments and logging.
* XRPLF/ximinez/online-delete-gaps: (36 commits)
chore: Bump version to 3.4.0-b0 (7976)
chore: Bump version to 3.3.0
chore: Bump version to 3.3.0-rc7
fix: Increase manifest protocol message size cap and fix manifests relay
fix: Cap untrusted manifests per message and drop oversized ones
chore: Bump version to 3.3.0-rc6
feat: Package validator-keys inside rippled
chore: Bump version to 3.3.0-rc5
fix: Switch SponsorshipSet to use a delta for sfFeeAmount
fix: Re-revert "fix: Set request size limits and differential pricing for get-object-by-hash calls"
chore: Bump version to 3.3.0-rc4
fix: Revert "fix: Set request size limits and differential pricing for get-object-by-hash calls"
chore: Bump version to 3.3.0-rc3
fix: Reduce untrusted manifest cache cap to 100
fix: Revert "fix: Reject oversized SHAMap nodes in gotStaleData and fetch-pack path"
chore: Bump version to 3.3.0-rc2
fix: Check transaction type before RawTransactions
fix: Change ConfidentialMPTConvert to no delegate
fix: Bound untrusted manifest cache
feat: Make DynamicMPT opt-in-immutable
...
* release/3.2.x:
chore: Bump version to 3.2.1
chore: Bump version to 3.2.1-rc1
fix: Cap untrusted manifests per message and drop oversized ones
fix: Reject oversized validator manifest before decoding
fix: Reduce untrusted manifest cache cap to 100
fix: Bound untrusted manifest cache
* XRPLF/ximinez/online-delete-gaps:
chore: Move semantic version tests to gtest (7872)
style: Make clang-tidy format files using clang-format rules (7880)
ci: Change `server_definitions` upload config name (7878)
chore: Trivial gtest migrations (7865)
ci: Group github-actions dependabot updates (7876)
ci: Update CI image and prepare-runner action (7874)
test: Migrate `nodestore` tests from Beast to GTest (7292)
test: Improve the server status test to not race and randomly fail (7304)
ci: [DEPENDABOT] bump actions/checkout from 7.0.0 to 7.0.1 (7871)
chore: Fix clang version in devshell (7860)
chore: Verify tooling version for Nix-managed environments (7862)
- Add a special case to healthWait() to not pause when the server is
DISCONNECTED.
- Log sequence differences at the start and end of rotation.
- Limit copy-forward to ledgers we're not about to delete, and unknown.
(Changes rotationInFlight_ from a bool to a LedgerIndex.)
- Set the "rotation in flight" index right at the beginning of the rotation
- Because the node copy process can take a long time, other ledgers may
get validated. Any reads for those ledgers have the potential to be
served by the archive DB and thus lost, too. Why wait?
- Add an assertion suggested on @vlntb in #7763.
- Don't wait as long for ledgers that should be built soon.
- Rescue nodes from the tree node cache, too.
- Move a log message into the same block as the thing it's logging.
- Change default recovery time from 1s to 2s. This may need some more
tuning.
- Rename the online_delete test config helper function to onlineDelete.
- Copy some class values while under lock, even though they can't
change, as defense in depth.
- Use RAII scope unlock in healthWait().
- Remove extraneous function declaration.
- Add a timeout to SHAMapStore_test::testLedgerGaps so it won't hang in
case of regression.
- Add an optional timeout parameter to SHAMapStore::rendezvous, and
return a success flag.
- Use the timeout in SHAMapStore_test::testLedgerGaps to show lack of
progress in the Store without an arbitrary sleep delay.
- Refactor LedgerMaster::missingFromCompleteLedgerRange to use RangeSet
functions instead of a naive iteration.
- If lastGoodValidatedLedger_ is default (0) in healthWait(), then act
as if no ledgers are missing.
* XRPLF/develop: (22 commits)
test: Add null check unit test for `Oracle::aggregatePrice` (7306)
ci: Patch conan recipe for Nix to be able to use on macOS (7532)
ci: Run sanitizers on release builds too (7527)
fix: Correct hybrid offer deletion on credential expiry (6843)
ci: Make sanitizer flags lists in the profile, not a string (7449)
ci: Make configurations launch on certain event types (7447)
fix: Add [[maybe_unused]] to fix320Enabled for assert=OFF builds (7446)
ci: Add `gh` and `file` to nix packages (7444)
fix: Disable transaction invariants (7409)
perf: Dispatch "hasInvalidAmount()" on type tag instead of dynamic_cast (7402)
refactor: Retire fixUniversalNumber amendment (5962)
test: Do not create data directory for memory databases (7323)
ci: Launch upload-conan-deps on profile change (7442)
fix: Fix Number comparison operator (7406)
feat: Use C++ 23 standard (7431)
refactor: Introduce XRPL_ASSERT_IF for amendment-gated assertions (7378)
refactor: Change config section and key string literals into constants (7095)
refactor: Use `std::move` and `std::string_view` where possible (7424)
refactor: Use const function arguments where possible (7423)
ci: Use XRPLF/actions build-multiarch-image workflow (7428)
...
* XRPLF/develop:
docs: Add --parallel flag to cmake build commands in BUILD.md (7302)
fix: Fix wrong hybrid offer orderbook placement and update `LedgerStateFix` to amend `ExchangeRate` meta (7087)
style: More clang-tidy identifier renaming (7290)
fix: Update pDEX invariant firing under a valid offer deletion (7118)
fix: Fix multisign and signfor to check for delegate (7064)
refactor: Fix `sfGeneric` and `sfInvalid` field names (7300)
docs: Fix some comments to improve readability (7122)
feat: Propagate underlying MPT flags to vault shares (7077)
* XRPLF/develop:
release: Set version to 3.3.0-b0 (7280)
refactor: Rename static constants (7120)
refactor: Use `isFlag` where possible instead of bitwise math (7278)
ci: Update XRPLF/actions (7281)
* XRPLF/develop:
fix: Gate -mcmodel flags to x86_64 in sanitizer builds (7049)
fix: Prevents overwriting a bool value in an invariant (6609)
fix: Address code review comments regarding `boost::coroutine2` (6977)
refactor: Apply various minor improvements and corrections (7045)
fix: Store `Delegate` object in delegating and authorized account directories for proper deletion (6681)
ci: Use print-env from XRPLF/actions (7052)
fix: Make assorted RPC fixes (6529)
chore: Enable clang-tidy v21 new checks (7031)
* commit '92046785d1fea5f9efe5a770d636792ea6cab78b':
test: Fix the `xrpl.net` unit test using async read (6241)
ci: Upload Conan recipes for develop, release candidates, and releases (6286)
fix: Stop embedded tests from hanging on ARM by using `atomic_flag` (6248)
fix: Remove DEFAULT fields that change to the default in associateAsset (6259) (6273)
refactor: Update Boost to 1.90 (6280)
refactor: clean up uses of `std::source_location` (6272)
ci: Pass missing sanitizers input to actions (6266)
ci: Properly propagate Conan credentials (6265)
ci: Explicitly set version when exporting the Conan recipe (6264)
ci: Use plus instead of hyphen for Conan recipe version suffix (6261)
chore: Detect uninitialized variables in CMake files (6247)
ci: Run on-trigger and on-pr when generate-version is modified (6257)
refactor: Enforce 15-char limit and simplify labels for thread naming (6212)
docs: Update Ripple Bug Bounty public key (6258)
ci: Add missing commit hash to Conan recipe version (6256)
fix: Include `<functional>` header in `Number.h` (6254)
ci: Upload Conan recipe for merges into develop and commits to release (6235)
Limit reply size on `TMGetObjectByHash` queries (6110)
ci: remove 'master' branch as a trigger (6234)
Improve ledger_entry lookups for fee, amendments, NUNL, and hashes (5644)
* upstream/develop:
chore: Remove codecov token check to support tokenless uploads on forks (5722)
Set version to 2.6.0-rc3
Revert "perf: Move mutex to the partition level (5486)"
chore: Update clang-format and prettier with pre-commit (5709)
fix(test): handle null metadata for unvalidated tx in Env::meta (5715)
chore: Workaround for CI build errors on arm64 (5717)
chore: Fix file formatting (5718)
fix: Skip notify-clio when running in a fork, reorder config fields (5712)
chore: Reverts formatting changes to external files, adds formatting changes to proto files (5711)
// Clients can now trust the database for information about this
// ledger sequence.
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.