Skip to content

Conversation

intelliot
Copy link
Contributor

High Level Overview of Change

Highlights:

  • Fixes unbounded memory growth when running the path_find command.
  • Fixes a bug that, in some situations, results in online deletion causing delays in persisting records to disk.
  • A new line in cfg/rippled-example.cfg sets send_queue_limit = 500. Consider adopting this setting in your own rippled.cfg in the appropriate stanza(s) for configured ws and wss port(s).
    • When the setting is not specified in the config, the default value is 100. At 100, during times when there are >200 transactions per ledger, rippled will disconnect WebSocket clients that subscribe to the transactions stream.
    • Clients receive a disconnected message with code 1008 or a Client too slow disconnection.
    • Using send_queue_limit = 500 fixes this issue.

The base branch is release. All releases (including betas) go in release. This PR will be merged with --ff-only (not squashed or rebased, and not using the GitHub UI).

Type of Change

  • Release

API Impact

No API impact.

ximinez and others added 14 commits January 11, 2024 20:11
Prevent WebSocket connections from trying to close twice.

The issue only occurs in debug builds (assertions are disabled in
release builds, including published packages), and when the WebSocket
connections are unprivileged. The assert (and WRN log) occurs when a
client drives up the resource balance enough to be forcibly disconnected
while there are still messages pending to be sent.

Thanks to @lathanbritz for discovering this issue in XRPLF#4822.
…away memory usage: (XRPLF#4822)

* Add logging for Application.cpp sweep()
* Improve lifetime management of ledger objects (`SLE`s)
* Only store SLE digest in CachedView; get SLEs from CachedSLEs
* Also force release of last ledger used for path finding if there are
  no path finding requests to process
* Count more ST objects (derive from `CountedObject`)
* Track CachedView stats in CountedObjects
* Rename the CachedView counters
* Fix the scope of the digest lookup lock

Before this patch, if you asked "is it caching?" It was always caching.
Resolves a warning that was emitted from the clang compiler. Switches
usage of the sprintf function to the recommended snprintf function.

Warning was observed in Apple clang version 15.0.0 (clang-1500.0.40.1).

Fix XRPLF#4569
Clients subscribed to `transactions` over WebSocket are being
disconnected because the traffic exceeds the default `send_queue_limit`
of 100.

This commit changes the default configuration, not the default in code.

Fix XRPLF#4866
Minor change in unit tests to improve testing scope.
This reverts commit 1d9db1b.

This improves the stability of online deletion.
…LF#4846)

Update the "rippled --help" message for the "-u" parameter. This
documents the unit test name pattern matching rule implemented by XRPLF#4634.

Fix XRPLF#4800
* Speed up the generation of coverage reports by using multiple cores.

* Add codecov step to coverage workflow.
Update to XRPLF#4849, using a workaround for spurious codecov upload errors.

Spurious codecov upload errors are expected in public repos which rely
on PRs via forks. Retrying uploads is a decent and easy workaround.
@intelliot intelliot changed the base branch from develop to release January 29, 2024 16:39
@intelliot intelliot changed the base branch from release to master January 29, 2024 16:48
@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

❗ No coverage uploaded for pull request base (master@2b0313d). Click here to learn what that means.

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #4905   +/-   ##
=========================================
  Coverage          ?   61.49%           
=========================================
  Files             ?      797           
  Lines             ?    70122           
  Branches          ?    36238           
=========================================
  Hits              ?    43119           
  Misses            ?    19761           
  Partials          ?     7242           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ximinez ximinez merged commit 22cdb57 into XRPLF:master Jan 29, 2024
@intelliot intelliot deleted the develop-next branch January 30, 2024 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants