[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Brittle downloads

I worked on timeout for connect recently, and I know that connect has a timeout of 120 seconds. Without actually testing read timeout, I know that it is setup to be 120 seconds as well. This was done because of discussion in https://bugs.eclipse.org/bugs/show_bug.cgi?id=266246.
(This is when using httpClient).

I don't think there are any retries.

Don't know if the problem is because you are hitting a bad mirror, but it does not look like it because the exception message is showing the full URL to the artifact (as opposed to just the repository URL) - but I am not 100% sure.

Henrik Lindberg

On May 14, 2009, at 9:40 AM, Thomas Hallgren wrote:

I know that there's been some improvements in this area since M7 which I'm currently using but I thought I might ask anyway. What kind of socket timeouts do we have and do we make any attempt to retry when a socket timeout exception is thrown?

I tried installing the org.eclipse.platform feature several times. I always ran into a SocketTimeoutException (see stacktrace below). Apparently it tries to download the packed file first and then the jar file. If neither succeeds, the installation fails. I first tried this on my local machine. I almost always failed so I decided to move to build.eclipse.org. As it turns out, it fails there too. So what's going on here? Does it contact mirrors that fails or what?

I'm explicitly trying to install from http://download.eclipse.org/eclipse/updates/3.5milestones/S-3.5M7-I200904302300 . Here's the stack-trace that I'm getting 7 times out of ten (the bundle that failes question vary):

[java] !MESSAGE Unable to read repository at http://download.eclipse.org/eclipse/updates/3.5milestones/S-3.5M7-I200904302300/plugins/org.eclipse.update.ui_3.2.200.v20090213.jar.pack.gz .
[java] !STACK 0
[java] java.net.SocketTimeoutException: Read timed out
[java] at java.net.SocketInputStream.socketRead0(Native Method)
[java] at java.net.SocketInputStream.read(SocketInputStream.java:155)
[java] at java.io.BufferedInputStream.fill(BufferedInputStream.java:229)
[java] at java.io.BufferedInputStream.read1(BufferedInputStream.java:267)
[java] at java.io.BufferedInputStream.read(BufferedInputStream.java:324)
[java] at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:658)
[java] at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:607)
[java] at sun.net.www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:966)
[java] at org .eclipse .ecf .provider .filetransfer .retrieve .UrlConnectionRetrieveFileTransfer .getDecompressedStream(UrlConnectionRetrieveFileTransfer.java:441)
[java] at org .eclipse .ecf .provider .filetransfer .retrieve .UrlConnectionRetrieveFileTransfer .openStreams(UrlConnectionRetrieveFileTransfer.java:285)
[java] at org .eclipse .ecf .provider .filetransfer .retrieve .AbstractRetrieveFileTransfer .sendRetrieveRequest(AbstractRetrieveFileTransfer.java:804)
[java] at org .eclipse .ecf .provider .filetransfer .retrieve .AbstractRetrieveFileTransfer .sendRetrieveRequest(AbstractRetrieveFileTransfer.java:502)
[java] at org .eclipse .ecf .provider .filetransfer .retrieve .MultiProtocolRetrieveAdapter .sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:98)
[java] at org .eclipse .equinox .internal .p2.repository.FileReader.sendRetrieveRequest(FileReader.java:251)
[java] at org .eclipse .equinox.internal.p2.repository.FileReader.readInto(FileReader.java: 200)
[java] at org .eclipse .equinox .internal .p2.repository.RepositoryTransport.download(RepositoryTransport.java: 69)
[java] at org .eclipse .equinox .internal .p2.repository.RepositoryTransport.download(RepositoryTransport.java: 113)
[java] at org .eclipse .equinox .internal .p2 .artifact .repository .simple .SimpleArtifactRepository .downloadArtifact(SimpleArtifactRepository.java:472)
[java] at org .eclipse .equinox .internal .p2 .artifact .repository .simple .SimpleArtifactRepository .downloadArtifact(SimpleArtifactRepository.java:455)
[java] at org .eclipse .equinox .internal .p2 .artifact .repository .simple .SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java: 522)
[java] at org .eclipse .equinox .internal .p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java: 200)
[java] at org .eclipse .equinox .internal .p2 .artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java: 175)
[java] at org .eclipse .equinox .internal .p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:159)
[java] at org .eclipse .equinox .internal .p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:95)
[java] at org .eclipse .equinox .internal .p2 .artifact .repository .simple .SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java: 511)
[java] at org .eclipse .equinox .internal .p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:64)
- thomas
p2-dev mailing list