X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1f1991b4824272e9b5a4b37eee6931e6519f8bdf..dcb6eaa5012bf1eea607c61209bee18723769c24:/services/keep-web/handler.go diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go index c947a6efcd..6f5f66ae0e 100644 --- a/services/keep-web/handler.go +++ b/services/keep-web/handler.go @@ -101,8 +101,11 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) { } if r.Header.Get("Origin") != "" { - // Allow simple cross-origin requests, without - // credentials. + // Allow simple cross-origin requests without user + // credentials ("user credentials" as defined by CORS, + // i.e., cookies, HTTP authentication, and client-side + // SSL certificates. See + // http://www.w3.org/TR/cors/#user-credentials). w.Header().Set("Access-Control-Allow-Origin", "*") } @@ -317,6 +320,12 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) { statusCode, statusText = http.StatusInternalServerError, err.Error() return } + if kc.Client != nil && kc.Client.Transport != nil { + // Workaround for https://dev.arvados.org/issues/9005 + if t, ok := kc.Client.Transport.(*http.Transport); ok { + defer t.CloseIdleConnections() + } + } rdr, err := kc.CollectionFileReader(collection, filename) if os.IsNotExist(err) { statusCode = http.StatusNotFound