Skip to content

Fix hardcoded timeouts

Context

Customers have been experiencing connection timeouts when performing certain Git operations on large repositories, or performing commands in parallel. See gitlab#358001 and #5351 (moved) for examples.

These timeouts occur during the negotiation phase of the git-upload-pack(1) and git-upload-archive(1) commands, which are invoked by a Gitaly node in response to a fetch or archive --remote operation. The timeouts were first introduced to limit the duration of the negotiation phase, and are disarmed when Git emits a flush packet.

Unfortunately, it seems like we're hitting the hardcoded timeouts unexpectedly, and we don't have a way for users to override these timeouts.

Proposal

Exposing these in configuration would be the easiest way forward. We can add a new configuration section to the Gitaly TOML called [timeout], with settings to override the two hardcoded timeout values.

Edited by James Liu
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information