Spicy-cream opened a new pull request, #3708: URL: https://github.com/apache/brpc/pull/3708
**What problem does this PR solve?** URMA can fall back to TCP during connection setup, but established transport failures do not control subsequent admission. New connections can repeatedly select a failing peer. **What is changed and the side effects?** - Add process-level LEGACY, AUTO and TCP_ONLY modes. AUTO uses a configurable peer cooldown, defaulting to 5 seconds; LEGACY remains the default. - Report completion, JFC and WR posting failures once per connection. Filter earlier epochs, count access errors separately and preserve EAGAIN for backpressure. - Select CTP/RTP paths from device capabilities, release short-connection resources, serialize TCP reads and initialize/validate send SGEs. Optional aligned copied sends add one payload copy. - Keep the recovery policy and client in the URMA directories. Add process-local SEND failure injection, independent regression tests and documentation. Mode changes affect new connections. Short connections can resume URMA after cooldown; established single/pooled TCP connections can continue serving RPCs. Existing v2/v3 wire formats remain compatible. **Validation** - The URMA-only revision passes 7 URMA regression groups, library/example builds, C++14 checks, injector self-tests and an end-to-end runner check with mock URMA and real brpc metrics. - Prior URMA RM/RTP hardware runs passed TCP_ONLY, v2/v3 AUTO, runtime mode switching and single/pooled 64 KiB/1 MiB attachment checks. - Hardware SEND_POST injection passed event short/single/pooled and polling short runs with 1 MiB attachments: one expected RPC failure per run, TCP cooldown, subsequent RPC recovery and zero content-validation failures. Short connections resumed URMA. **Check List** - [x] Build the library/examples and run related regressions. - [x] Add independent tests, preserve existing community UTs and update documentation. - [x] Follow four-space indentation and C++ nullptr conventions. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
