Remove .no_timeout as a timeout option from GitalyClient
Problem to solve
We have a range of timeout values defined in GitalyClient. One of these values is no_timeout. There is an issue with no_timeout, as some calls have been known to hang forever (see https://gitlab.com/gitlab-org/gitlab-ce/issues/53704).
no_timeout currently will become the default timeout for a Gitaly call from a Sidekiq worker if no timeout: argument was passed to Gitaly.call.
Proposal
- Replace
Gitaly.no_timeoutwith a very high timeout value. All cases ofGitaly.no_timeoutin the app should use this new high timeout instead. This new high timeout value will be calledslow_timeout
Up for discussion
Note: These were the initial set of questions, however, please read the discussions in this Issue as some answers are being formed there.
- Should the default timeout for Sidekiq jobs become the same as for non-Sidekiq calls? Or,
- Should there be a new user-configurable default timeout created for Sidekiq jobs? (a
gitaly_timeout_worker_default), or - Should the default timeout for Sidekiq jobs become
slow_timeout - Should
slow_timeoutbe set to 24 hours?
Documentation
To be updated:
Edited by Luke Duncalfe