gvfs-helper: add gvfs.fallback config option#664
gvfs-helper: add gvfs.fallback config option#664derrickstolee wants to merge 1 commit intomicrosoft:vfs-2.45.2from
gvfs.fallback config option#664Conversation
By default, GVFS Protocol-enabled Scalar clones will fall back to the origin server if there is a network issue with the cache servers. However (and especially for the prefetch endpoint) this may be a very expensive operation for the origin server, leading to the user being throttled. This shows up later in cases such as 'git push' or other web operations. To avoid this, create a new config option, 'gvfs.fallback', which defaults to true. When set to 'false', pass '--no-fallback' from the gvfs-helper client to the child gvfs-helper server process. This will allow users who have hit this problem to avoid it in the future. In case this becomes a more widespread problem, engineering systems can enable the config option more broadly. Enabling the config will of course lead to immediate failures for users, but at least that will help diagnose the problem when it occurs instead of later when the throttling shows up and the server load has already passed, damage done. Signed-off-by: Derrick Stolee <stolee@gmail.com>
|
I wonder whether this would merit a new test case in |
|
Let me look at the test suite now. |
| strvec_pushf(&argv, "--shared-cache=%s", | ||
| gh_client__chosen_odb->path); | ||
|
|
||
| /* If gvfs.fallback=false, then don't add --fallback. */ |
There was a problem hiding this comment.
Would it be easier to just hack gvfs-helper.exe to lookup that config value ??
There was a problem hiding this comment.
Might be too magic, though. And so far, gvfs-helper only uses git_config(git_default_config), no custom config variables there.
There was a problem hiding this comment.
Moreover, the client passes --fallback to the server directly, which would normally override any config option.
|
Please see #665 |
|
@derrickstolee if you're okay with #665, I'd like to take that and close this here PR? |
|
Closing in favor of #665. |
By default, GVFS Protocol-enabled Scalar clones will fall back to the origin server if there is a network issue with the cache servers. However (and especially for the prefetch endpoint) this may be a very expensive operation for the origin server, leading to the user being throttled. This shows up later in cases such as 'git push' or other web operations.
To avoid this, create a new config option, 'gvfs.fallback', which defaults to true. When set to 'false', pass '--no-fallback' from the gvfs-helper client to the child gvfs-helper server process.
This will allow users who have hit this problem to avoid it in the future. In case this becomes a more widespread problem, engineering systems can enable the config option more broadly.
Enabling the config will of course lead to immediate failures for users, but at least that will help diagnose the problem when it occurs instead of later when the throttling shows up and the server load has already passed, damage done.
GVFS Protocol.