mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
rpc_server: disable BDP pings on server
The MPM gRPC server runs on a single-threaded gevent hub. gRPC's BDP (bandwidth-estimation) probe fires repeatedly while the reclaim loop keeps the link busy, and its ACK must return within grpcio's short, RTT-derived internal BDP deadline. Any blocking hardware register read (e.g. a ClkMgr PLL-lock poll) stalls all socket I/O on the hub until it returns; , but these polls also run periodically in steady state. When a stall outlasts the BDP deadline the server sends GOAWAY "ping_timeout" and drops the transport. The fix is to disable BDP on the server. The default flow-control window is fine on the LAN link, so this costs nothing here. BDP is left enabled on the client, whose native-threaded stack never freezes.
This commit is contained in:
parent
dfc1ad17c3
commit
a076ee6dd7
@ -1116,6 +1116,11 @@ def _rpc_server_process(shared_state, port, default_args):
|
||||
options=[
|
||||
("grpc.max_send_message_length", MAX_GRPC_MESSAGE_SIZE),
|
||||
("grpc.max_receive_message_length", MAX_GRPC_MESSAGE_SIZE),
|
||||
# Disable the server's BDP (bandwidth-estimation) ping. It fires
|
||||
# repeatedly and its ACK must return within grpcio's internal BDP
|
||||
# timeout. The ACK may be missed if the server is stalled by ClkMgr
|
||||
# PLL-lock polling, causing the server to tear down the connection.
|
||||
("grpc.http2.bdp_probe", 0),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user