Rendering: Check timeout error when the request failed (#57654)

* Check timeout error when the request failed

* Update error and check

* Uses errors.As to fix the lint
This commit is contained in:
Selene
2022-10-27 17:27:03 +02:00
committed by GitHub
parent 2a36301817
commit bff9671b81
2 changed files with 11 additions and 3 deletions
+9 -3
View File
@@ -137,8 +137,8 @@ func (rs *RenderingService) renderCSVViaHTTP(ctx context.Context, renderKey stri
return &RenderCSVResult{FilePath: filePath, FileName: downloadFileName}, nil
}
func (rs *RenderingService) doRequest(ctx context.Context, url *url.URL, headers map[string][]string) (*http.Response, error) {
req, err := http.NewRequestWithContext(ctx, "GET", url.String(), nil)
func (rs *RenderingService) doRequest(ctx context.Context, u *url.URL, headers map[string][]string) (*http.Response, error) {
req, err := http.NewRequestWithContext(ctx, "GET", u.String(), nil)
if err != nil {
return nil, err
}
@@ -149,12 +149,18 @@ func (rs *RenderingService) doRequest(ctx context.Context, url *url.URL, headers
req.Header[k] = v
}
rs.log.Debug("calling remote rendering service", "url", url)
rs.log.Debug("calling remote rendering service", "url", u)
// make request to renderer server
resp, err := netClient.Do(req)
if err != nil {
rs.log.Error("Failed to send request to remote rendering service", "error", err)
var urlErr *url.Error
if errors.As(err, &urlErr) {
if urlErr.Timeout() {
return nil, ErrServerTimeout
}
}
return nil, fmt.Errorf("failed to send request to remote rendering service: %w", err)
}