On Wed, Mar 4, 2020 at 2:32 PM Ed Merks <ed.me...@gmail.com> wrote: > Hi, > > I don't know how many of you have noticed things like this in the build > logs: > > *12:25:45* Mar 04, 2020 11:25:45 AM org.apache.http.impl.execchain.RetryExec > execute*12:25:45* INFO: I/O exception > (org.apache.http.NoHttpResponseException) caught when processing request to > {s}->https://download.eclipse.org:443: The target server failed to > respond*12:25:45* Mar 04, 2020 11:25:45 AM > org.apache.http.impl.execchain.RetryExec execute*12:25:45* INFO: Retrying > request to {s}->https://download.eclipse.org:443 > > I'm a bit concerned about the cause of such exceptions. I've debugged > where this happens in my Oomph environment. Specifically it happens in > org.apache.http.impl.execchain.RetryExec.execute(HttpRoute, > HttpRequestWrapper, HttpClientContext, HttpExecutionAware) when parsing the > response header finds nothing with the following stack leading to the > logged problem: > > org.apache.http.NoHttpResponseException.<init>(java.lang.String) line: > 47 > org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(org.apache.http.io.SessionInputBuffer) > line: 141 > org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(org.apache.http.io.SessionInputBuffer) > line: 56 > org.apache.http.impl.conn.DefaultHttpResponseParser(org.apache.http.impl.io.AbstractMessageParser<T>).parse() > line: 259 > org.apache.http.impl.conn.LoggingManagedHttpClientConnection(org.apache.http.impl.DefaultBHttpClientConnection).receiveResponseHeader() > line: 163 > org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader() line: 157 > org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(org.apache.http.HttpRequest, > org.apache.http.HttpClientConnection, org.apache.http.protocol.HttpContext) > line: 273 > org.apache.http.protocol.HttpRequestExecutor.execute(org.apache.http.HttpRequest, > org.apache.http.HttpClientConnection, org.apache.http.protocol.HttpContext) > line: 125 > org.apache.http.impl.execchain.MainClientExec.execute(org.apache.http.conn.routing.HttpRoute, > org.apache.http.client.methods.HttpRequestWrapper, > org.apache.http.client.protocol.HttpClientContext, > org.apache.http.client.methods.HttpExecutionAware) line: 272 > org.apache.http.impl.execchain.ProtocolExec.execute(org.apache.http.conn.routing.HttpRoute, > org.apache.http.client.methods.HttpRequestWrapper, > org.apache.http.client.protocol.HttpClientContext, > org.apache.http.client.methods.HttpExecutionAware) line: 186 > org.apache.http.impl.execchain.RetryExec.execute(org.apache.http.conn.routing.HttpRoute, > org.apache.http.client.methods.HttpRequestWrapper, > org.apache.http.client.protocol.HttpClientContext, > org.apache.http.client.methods.HttpExecutionAware) line: 89 > org.apache.http.impl.execchain.RedirectExec.execute(org.apache.http.conn.routing.HttpRoute, > org.apache.http.client.methods.HttpRequestWrapper, > org.apache.http.client.protocol.HttpClientContext, > org.apache.http.client.methods.HttpExecutionAware) line: 110 > org.apache.http.impl.client.InternalHttpClient.doExecute(org.apache.http.HttpHost, > org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) line: > 185 > org.apache.http.impl.client.InternalHttpClient(org.apache.http.impl.client.CloseableHttpClient).execute(org.apache.http.client.methods.HttpUriRequest, > org.apache.http.protocol.HttpContext) line: 83 > org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientFileSystemBrowser.runRequest() > line: 246 > org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(org.eclipse.core.runtime.IProgressMonitor) > line: 69 > org.eclipse.core.internal.jobs.Worker.run() line: 63 > > There will be two additional retries, and if those fail too, the > repository will fail to load (or the artifact will fail to download). In > my product catalog generator, I load a whole whack of repositories and this > happens frequently enough that more often than not, one or more > repositories fail to load. This concerns me because with 2 million users > loading repositories (via updates or via the installer), a significant > fraction might well run into this same problem. > > When I use > -Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient45 > to disable the provider for this implementation, I of course see no log > entries nor do any repositories fail to load. > > I'm starting to get the feeling that either a) the server is ill-behaved > or b) there is a problem in the httpclient implementation. Perhaps some > Keep-Alive header: is poor or not being respected by the implementation. > > I saw something similar here where the server was blamed: > > > https://support.sonatype.com/hc/en-us/articles/213465028-Understanding-The-target-server-failed-to-respond-in-Nexus-logs > > Does anyone have any ideas? >
Slightly off topic but keeping up with httpclient has proved to be a big timesync. It's probably about time to start working on https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html based filetransfer implementation and stop losing the time to keep up with yet another third party library. > Regards, > Ed > > > > > > _______________________________________________ > platform-dev mailing list > platform-dev@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/platform-dev -- Alexander Kurtakov Red Hat Eclipse Team
_______________________________________________ platform-dev mailing list platform-dev@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/platform-dev