Skip to content

gvfs-helper: show network advice for transient service errors#880

Open
derrickstolee wants to merge 1 commit intomicrosoft:vfs-2.53.0from
derrickstolee:retry-warning
Open

gvfs-helper: show network advice for transient service errors#880
derrickstolee wants to merge 1 commit intomicrosoft:vfs-2.53.0from
derrickstolee:retry-warning

Conversation

@derrickstolee
Copy link
Copy Markdown

When gvfs_advice_on_retry() fires after exhausting retries, it unconditionally suggests checking disk space or deleting the shared object cache. This is misleading when the failures are transient network or service errors (e.g. CURLE_RECV_ERROR, HTTP 429, HTTP 503) rather than local filesystem problems like index-pack failures.

The current advice (delete your scalar cache and retry) can be even worse under a service outage, such as recently occurred when the India region's cache servers were unable to respond to incoming requests. The users who followed this advice were not able to redownload data and were stuck without an ability to work.

Teach gvfs_advice_on_retry() to distinguish between network/service errors and local errors by inspecting the error code. When the error is a curl error, HTTP 429, or HTTP 503, advise the user about potential service outages or network connectivity issues instead. The existing disk/cache advice is preserved for local failures such as index-pack errors (GH__ERROR_CODE__INDEX_PACK_FAILED).

  • This change only applies to interactions with Azure DevOps and the
    GVFS Protocol.

When gvfs_advice_on_retry() fires after exhausting retries, it
unconditionally suggests checking disk space or deleting the shared
object cache. This is misleading when the failures are transient
network or service errors (e.g. CURLE_RECV_ERROR, HTTP 429, HTTP 503)
rather than local filesystem problems like index-pack failures.

The current advice (delete your scalar cache and retry) can be even
worse under a service outage, such as recently occurred when the India
region's cache servers were unable to respond to incoming requests. The
users who followed this advice were not able to redownload data and were
stuck without an ability to work.

Teach gvfs_advice_on_retry() to distinguish between network/service
errors and local errors by inspecting the error code. When the error
is a curl error, HTTP 429, or HTTP 503, advise the user about
potential service outages or network connectivity issues instead.
The existing disk/cache advice is preserved for local failures such
as index-pack errors (GH__ERROR_CODE__INDEX_PACK_FAILED).

Signed-off-by: Derrick Stolee <stolee@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant