• Will Chandler's avatar
    Don't limit number of Gitaly client keepalives · 4636ed9b
    Will Chandler authored
    Long-running RPCs, such as `ForkRepository`, may take several hours
    to complete. While Sidekiq waits for the RPC to complete it should send
    keepalive pings to Gitaly/Praefect to prevent load balancers from
    killing the connection. However, the default value for
    `GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA` is only 2, with pings
    sent at 5 minute
    intervals.
    
    As a result, Sidekiq will only send keepalives for the first 5 minutes,
    then leave the connection idle for up to 6 hours and putting
    long-running RPCs at risk of failure.
    
    This commit sets `GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA` to 0, so
    Sidekiq can send an unlimited number of keepalives and keep long-running
    RPCs active. Note that pings are still sent at 5 minute intervals with
    this change.
    
    Changelog: fixed
    4636ed9b
gitaly_client.rb 16.9 KB