mirror of
https://github.com/ZmnSCPxj/clboss.git
synced 2026-08-19 13:18:20 +02:00
Completed rebalances were correlated back to their (source, destination) through an in-memory map keyed only by the RequestMoveFunds requester pointer. When one rebalancer issues several moves at once they share a single requester (EarningsRebalancer uses its module pointer; JitRebalancer uses nullptr), so each request overwrote the previous map entry. As the moves completed, the first response consumed and erased the shared entry -- booking against whatever pair happened to be written last -- and every later response, including the actually-successful one, hit the not-in-our-table path and was silently dropped. Effect: rebalance spend and volume were under-counted and sometimes mis-attributed to the wrong peer. That also starved the EarningsRebalancer refusing-to-throw-good-money-after-bad guard of accurate expenditure data. JIT-dominated periods looked fine only because those moves complete one at a time and rarely overlap; an EarningsRebalancer-dominated period booked almost nothing. Fix: ResponseMoveFunds now carries source and destination directly. FundsMover/Runner populates them and EarningsTracker books the move straight from the response. The requester-keyed pendings map, the RequestMoveFunds subscription, and request_move_funds are removed. This mirrors the existing XRebalanceAttribution path, which already passes source/destination in its message. Tests: ResponseMoveFunds constructions updated across the rebalancer and earnings tests; test_earningstracker now issues two moves under the same requester and asserts both are booked and correctly attributed -- a regression guard for the collision. Full suite 85/85. |
||
|---|---|---|
| .. | ||
| Mod | ||
| ModG | ||
| Msg | ||
| concurrent.cpp | ||
| concurrent.hpp | ||
| JsonInput.cpp | ||
| JsonInput.hpp | ||
| log.cpp | ||
| log.hpp | ||
| Main.cpp | ||
| Main.hpp | ||
| open_rpc_socket.cpp | ||
| open_rpc_socket.hpp | ||
| random_engine.cpp | ||
| random_engine.hpp | ||
| RebalanceMode.hpp | ||
| Shutdown.hpp | ||
| Signer.cpp | ||
| Signer.hpp | ||