Skip to main content

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


I think the deeper problem here is that this repository hasn't been configured with a mirrorsURL. I have entered this bug:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=276300

If mirrors were present you would get very different behaviour, since we retry once per available mirror. With no mirrors and a two minute timeout contacting the main server, I'm not sure we could do a lot better. Henrik described the problem very well - there is no perfect retry policy that makes sense for both headless builds and end users, so it's a difficult problem.




Thomas Hallgren <thomas@xxxxxxx>
Sent by: p2-dev-bounces@xxxxxxxxxxx

05/14/2009 03:40 AM

Please respond to
P2 developer discussions <p2-dev@xxxxxxxxxxx>

To
P2 developer discussions <p2-dev@xxxxxxxxxxx>
cc
Subject
[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
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev


Back to the top