Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Failure when receiving data from from the peer" is not retried #2570

Closed
champtar opened this issue Mar 24, 2022 · 2 comments · Fixed by #2843
Closed

"Failure when receiving data from from the peer" is not retried #2570

champtar opened this issue Mar 24, 2022 · 2 comments · Fixed by #2843

Comments

@champtar
Copy link

Doing kickstart install from an Alma 8.5 iso / Alma 8.5 based tree ( libostree/2021.3 | libcurl/7.61.1),
pulling content using http2 I'm getting Failure when receiving data from from the peer.
Disabling http2 make the install succeed, so root cause is likely a curl bug, but we might want to consider retrying more errors in _ostree_fetcher_should_retry_request

@cgwalters
Copy link
Member

OK right, this also got filed as https://issues.redhat.com/browse/RHELPLAN-146197

The relevant code here is in _ostree_fetcher_should_retry_request.

I think what we may be missing here is a mapping from libcurl errors to GError.

Today we do:

      else if (curlres != CURLE_OK)
        {
          if (is_file && curlres == CURLE_FILE_COULDNT_READ_FILE)
            {
              /* Handle file not found */
              g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
                                       "%s", curl_easy_strerror (curlres));
            }
          else
            {
              g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED,

But...arguably perhaps we should just map all libcurl errors here to G_IO_ERROR_TIMED_OUT - this would force a retry.

@cgwalters
Copy link
Member

This one should be fixed by #2843

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 a pull request may close this issue.

2 participants