Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed 2.2.0-b3 #4995

Merged
merged 8 commits into from
Apr 19, 2024
Merged

Proposed 2.2.0-b3 #4995

merged 8 commits into from
Apr 19, 2024

Conversation

ximinez
Copy link
Collaborator

@ximinez ximinez commented Apr 18, 2024

High Level Overview of Change

This is a beta for the 2.2.0 release.

Highlights:

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) to both release and develop.

Context of Change

This introduces

  • the fixPreviousTxnID amendment to make it easier to analyze the history of all objects.

It also fixes a deadlock situation during online_delete, improved code coverage reporting, and adds several tests to improve coverage of AMM functionality.

Type of Change

  • Release

API Impact

No API impact.

mvadari and others added 6 commits April 18, 2024 10:41
…4751)

This amendment, `fixPreviousTxnID`, adds `PreviousTxnID` and
`PreviousTxnLgrSequence` as fields to all ledger objects that did
not already have them included (`DirectoryNode`, `Amendments`,
`FeeSettings`, `NegativeUNL`, and `AMM`). This makes it much easier
to go through the history of these ledger objects.
* Amend `.codecov.yml` to disable coverage reporting of test sources
  and explicitly set most parameters
* Increase codecov upload retry time to 210s (from 35s)
* Upgrade gcovr adding support for more coverage formats (lcov, clover, jacoco)
* Upgrade github actions in coverage workflow
* Explicitly disable codecov plugins (also removing `gcov` coverage, which is not
  correctly handled by codecov codecov/feedback#334)
---------

Co-authored-by: Howard Hinnant <[email protected]>
Co-authored-by: Mark Travis <[email protected]>
Co-authored-by: Bronek Kozicki <[email protected]>
Co-authored-by: Mayukha Vadari <[email protected]>
Co-authored-by: Chenna Keshava <[email protected]>
The `rotateWithLock` function holds a lock while it calls a callback
function that's passed in by the caller. This is a problematic design
that needs to be used very carefully. In this case, at least one caller
passed in a callback that eventually relocks the mutex on the same
thread, causing UB (a deadlock was observed). The caller was from
SHAMapStoreImpl, and it called `clearCaches`. This `clearCaches` can
potentially call `fetchNodeObject`, which tried to relock the mutex.

This patch resolves the issue by changing the mutex type to a
`recursive_mutex`. Ideally, the code should be rewritten so it doesn't
hold the mutex during the callback and the mutex should be changed back
to a regular mutex.

Co-authored-by: Ed Hennis <[email protected]>
@codecov-commenter
Copy link

codecov-commenter commented Apr 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 71.0%. Comparing base (c88166e) to head (676aae2).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           release   #4995      +/-   ##
==========================================
- Coverage     77.0%   71.0%    -6.0%     
==========================================
  Files         1129     796     -333     
  Lines       131914   66727   -65187     
  Branches     39629   10971   -28658     
==========================================
- Hits        101539   47348   -54191     
+ Misses       24459   19379    -5080     
+ Partials      5916       0    -5916     
Files Coverage Δ
src/ripple/app/misc/impl/AMMUtils.cpp 99.2% <ø> (+24.0%) ⬆️
src/ripple/app/paths/AMMOffer.h 83.3% <ø> (ø)
src/ripple/app/paths/impl/AMMOffer.cpp 81.8% <ø> (+23.9%) ⬆️
src/ripple/app/tx/impl/AMMDeposit.cpp 95.1% <ø> (+16.7%) ⬆️
src/ripple/app/tx/impl/AMMWithdraw.cpp 90.4% <ø> (+15.5%) ⬆️
src/ripple/ledger/impl/ApplyStateTable.cpp 92.6% <100.0%> (+5.7%) ⬆️
src/ripple/nodestore/impl/DatabaseRotatingImp.h 50.0% <ø> (ø)
src/ripple/protocol/Feature.h 100.0% <ø> (+7.9%) ⬆️
src/ripple/protocol/STIssue.h 80.0% <ø> (+5.0%) ⬆️
src/ripple/protocol/STLedgerEntry.h 100.0% <ø> (ø)
... and 6 more

... and 770 files with indirect coverage changes

Impacted file tree graph

Copy link
Collaborator

@scottschurr scottschurr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 builds, unit tests, and syncs for me on macOS.

@ximinez ximinez merged commit 676aae2 into XRPLF:release Apr 19, 2024
17 checks passed
@ximinez ximinez deleted the develop-next branch April 19, 2024 16:32
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