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

Reply via email to