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

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