Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 248547

Summary: p2 hangs on update a plugin from an third party update site because slow eclipse update server
Product: [Eclipse Project] Equinox Reporter: Arne Deutsch <Arne.Deutsch>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: RESOLVED DUPLICATE QA Contact:
Severity: critical    
Priority: P3 CC: funsheep, pascal, susan
Version: 3.4   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
p2 hangs because slow server that has no conection to the downloaded plugin none

Description Arne Deutsch CLA 2008-09-25 06:27:26 EDT
Created attachment 113442 [details]
p2 hangs because slow server that has no conection to the downloaded plugin

Build ID: I20080617-2000

Steps To Reproduce:
1. Start Eclipse
2. Try to install a new plugin from http://update.codecover.org or some other update server
3. p2 will hang (at the moment at least, while there is a problem with the eclipse update server)


More information:
Hi all,

We've have just a very bad experience tring to install a new plugin inside eclipse ganymed using p2. We can't install any plugin any more in none of our Ganymed installations at the moment as p2 simply hangs.

The reason seems to be a very slow update server (http://download.eclipse.org/tools/mylyn/e3.4/features/ ???). May it be that p2 tries to connect to this server and does not timeout? If this is the case it would very critical ... if one server is slow no one could install a plugin any more.

I've tried to install different plugins on different computers the last 2 hours and updating is simply not possible any more (tries e.g. http://update.codecover.org ).
Comment 1 Arne Deutsch CLA 2008-09-25 06:30:38 EDT
Still can't update but now there are time out exceptions.




java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.www.MeteredStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer$1.performFileTransfer(AbstractRetrieveFileTransfer.java:99)
at org.eclipse.ecf.filetransfer.FileTransferJob.run(FileTransferJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)




org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: Read timed out
at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.parseFeature(UpdateSite.java:196)
at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadFeaturesFromSite(UpdateSite.java:453)
at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadFeatures(UpdateSite.java:376)
at org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepository.generateMetadata(UpdateSiteMetadataRepository.java:108)
at org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepository.<init>(UpdateSiteMetadataRepository.java:73)
at org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepositoryFactory.load(UpdateSiteMetadataRepositoryFactory.java:48)
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:485)
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:452)
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:435)
at org.eclipse.equinox.internal.p2.director.SimplePlanner.gatherAvailableInstallableUnits(SimplePlanner.java:196)
at org.eclipse.equinox.internal.p2.director.SimplePlanner.getProvisioningPlan(SimplePlanner.java:235)
at org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil.getProvisioningPlan(ProvisioningUtil.java:210)
at org.eclipse.equinox.internal.provisional.p2.ui.actions.InstallAction.computeProvisioningPlan(InstallAction.java:80)
at org.eclipse.equinox.internal.provisional.p2.ui.actions.InstallAction.getProvisioningPlan(InstallAction.java:130)
at org.eclipse.equinox.internal.provisional.p2.ui.actions.ProfileModificationAction$1.run(ProfileModificationAction.java:61)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.www.MeteredStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer$1.performFileTransfer(AbstractRetrieveFileTransfer.java:99)
at org.eclipse.ecf.filetransfer.FileTransferJob.run(FileTransferJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)




java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.www.MeteredStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer$1.performFileTransfer(AbstractRetrieveFileTransfer.java:99)
at org.eclipse.ecf.filetransfer.FileTransferJob.run(FileTransferJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)





Error reading feature http://download.eclipse.org/tools/mylyn/update/e3.4/features/org.eclipse.mylyn.context_feature_3.0.2.v20080918-1100-e3x.jar.
Comment 2 Pascal Rapicault CLA 2008-09-25 09:50:25 EDT
Could you please try to install the content from the zip available on http://wiki.eclipse.org/ECF_Apache_Httpclient-Based_Provider and see if this helps with the problem?
Also does that happen consistently?
Comment 3 Arne Deutsch CLA 2008-09-25 10:56:33 EDT
> Also does that happen consistently?

It has happened only today and only for a few hours (~4h).

Now, after waiting a few hours, all works again. I can update all plugins from all update sites on all our computers. I would assume the  server problem is fixed in the meantime.

Anyway I fear, if there is a server problem in the future the update problematic may be reappear. Does p2 try to connect to other servers as the one I select for my update? If so, maybe this can be changed?

As the problem does not appear any more I can't test http://wiki.eclipse.org/ECF_Apache_Httpclient-Based_Provider .
Comment 4 Susan McCourt CLA 2008-09-25 11:39:59 EDT
>Does p2 try to connect to other servers as the one
>I select for my update? If so, maybe this can be changed?
See bug #234213 comment #11
Comment 5 John Arthorne CLA 2008-09-25 13:05:03 EDT
*** Bug 248523 has been marked as a duplicate of this bug. ***
Comment 6 Pascal Rapicault CLA 2008-09-26 10:14:17 EDT

*** This bug has been marked as a duplicate of bug 234916 ***