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

Bug 339776

Summary: Plugin installation which worked on 3.6.1 fails on 3.6.2
Product: [Eclipse Project] Equinox Reporter: Prashant Deva <prashant.deva>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: CLOSED INVALID QA Contact:
Severity: blocker    
Priority: P3 CC: irbull, jeffmcaffer, thomas
Version: 3.6.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
Folder Diff between upgraded and clean installation of 3.6.2 none

Description Prashant Deva CLA 2011-03-11 19:43:42 EST
Build Identifier: M20110210-1200

Our plugin update site (http://chrononsystems.com/update-site) worked perfectly on Eclipse 3.6.0 and 3.6.1.
However we have noticed that since Eclipse 3.6.2 when we/our users try to install our plugin, they get the following exception


java.io.IOException: The file "C:\eclipses\main\eclipse\plugins\com.chronon.sb.browser.launcher_1.0.1.106.jar" does not exist
at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.<init>(ZipBundleFile.java:62)
at org.eclipse.osgi.baseadaptor.bundlefile.ZipBundleFile.<init>(ZipBundleFile.java:56)
at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:244)
at org.eclipse.equinox.internal.p2.engine.phases.CertificateChecker.checkCertificates(CertificateChecker.java:67)
at org.eclipse.equinox.internal.p2.engine.phases.CertificateChecker.start(CertificateChecker.java:49)
at org.eclipse.equinox.internal.p2.engine.phases.CheckTrust.completePhase(CheckTrust.java:50)
at org.eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:216)
at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:84)
at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:44)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:73)
at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:174)
at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


I am raising bug severity  because this essentially breaks backward compatibility of Eclipse 3.6.2.

Reproducible: Always
Comment 1 Thomas Hallgren CLA 2011-03-12 02:11:07 EST
Is the URL of the update site really correct? I've tried the following in order to find a p2 repository at that location:

http://www.chrononsystems.com/update-site/index.p2
http://www.chrononsystems.com/update-site/content.jar
http://www.chrononsystems.com/update-site/content.xml
http://www.chrononsystems.com/update-site/compositeContent.jar
http://www.chrononsystems.com/update-site/compositeContent.xml
http://www.chrononsystems.com/update-site/site.xml

All URL's give me a 404 and AFAIK, p2 will give up when that happens. That's not new behavior in 3.6.2.
Comment 2 Ian Bull CLA 2011-03-12 02:20:29 EST
I tired this out, and I can't seem to find an update site at the location you mentioned:


 wget http://chrononsystems.com/update-site/content.jar
--2011-03-11 23:17:35--  http://chrononsystems.com/update-site/content.jar
Resolving chrononsystems.com... 72.10.52.88
Connecting to chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.chrononsystems.com/update-site/content.jar [following]
--2011-03-11 23:17:36--  http://www.chrononsystems.com/update-site/content.jar
Resolving www.chrononsystems.com... 72.10.52.88
Connecting to www.chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-03-11 23:17:37 ERROR 404: Not Found.


wget http://chrononsystems.com/update-site/content.xml
--2011-03-11 23:17:39--  http://chrononsystems.com/update-site/content.xml
Resolving chrononsystems.com... 72.10.52.88
Connecting to chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.chrononsystems.com/update-site/content.xml [following]
--2011-03-11 23:17:40--  http://www.chrononsystems.com/update-site/content.xml
Resolving www.chrononsystems.com... 72.10.52.88
Connecting to www.chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-03-11 23:17:40 ERROR 404: Not Found.

wget http://chrononsystems.com/update-site/site.xml
--2011-03-11 23:17:49--  http://chrononsystems.com/update-site/site.xml
Resolving chrononsystems.com... 72.10.52.88
Connecting to chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.chrononsystems.com/update-site/site.xml [following]
--2011-03-11 23:17:49--  http://www.chrononsystems.com/update-site/site.xml
Resolving www.chrononsystems.com... 72.10.52.88
Connecting to www.chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-03-11 23:17:50 ERROR 404: Not Found.


 wget http://chrononsystems.com/update-site/compositeContent.jar
--2011-03-11 23:17:57--  http://chrononsystems.com/update-site/compositeContent.jar
Resolving chrononsystems.com... 72.10.52.88
Connecting to chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.chrononsystems.com/update-site/compositeContent.jar [following]
--2011-03-11 23:17:58--  http://www.chrononsystems.com/update-site/compositeContent.jar
Resolving www.chrononsystems.com... 72.10.52.88
Connecting to www.chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-03-11 23:17:58 ERROR 404: Not Found.


 wget http://chrononsystems.com/update-site/compositeContent.xml
--2011-03-11 23:18:00--  http://chrononsystems.com/update-site/compositeContent.xml
Resolving chrononsystems.com... 72.10.52.88
Connecting to chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.chrononsystems.com/update-site/compositeContent.xml [following]
--2011-03-11 23:18:01--  http://www.chrononsystems.com/update-site/compositeContent.xml
Resolving www.chrononsystems.com... 72.10.52.88
Connecting to www.chrononsystems.com|72.10.52.88|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2011-03-11 23:18:01 ERROR 404: Not Found.
Comment 3 Ian Bull CLA 2011-03-12 02:21:15 EST
(In reply to comment #1)
Wow... 1/2 a world away and we are trying the same thing at the same time ;)
Comment 5 Prashant Deva CLA 2011-03-12 03:45:30 EST
More details about the bug.

If you have a clean, fresh 3.6.2 installation, the Chronon installation goes fine.

If you however update your eclipse from 3.6.1 to 3.6.2 using the 'Check for updates' installer and then try to install Chronon from the update site, then you run into this issue that i have described.
Comment 6 Thomas Hallgren CLA 2011-03-12 05:32:08 EST
I installed a fresh 3.6.1 IDE, upgraded it to a 3.6.2 using 'Check for updates', and then installed the Chronon feature. I did not encounter any problems. This was on a Linux running x86_64. Judging from the trace, you are on a Windows box so I'll try that too.
Comment 7 Prashant Deva CLA 2011-03-12 05:36:27 EST
Created attachment 191043 [details]
Folder Diff between upgraded and clean installation of 3.6.2

Attached is folder diff.
Column b is an eclipse 3.6.1 installation  upgraded to 3.6.2 and column c is clean 3.6.2 installation.

I am running on windows 7 64.
I have tried this bug on both upgraded versions of 32bit and 64 bit eclipse.

Many of our users are running into this bug too.
Comment 8 Prashant Deva CLA 2011-03-12 05:37:33 EST
Bug report from another user who is running into a similar issue

An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Error closing the output stream for osgi.bundle,com.chronon.sb.browser.recordercontainer,1.0.1.106 on repository file:/C:/Programme/eclipse/.
Error unzipping C:\DOKUME~1\sbe\LOKALE~1\Temp\com.chronon.sb.browser.recordercontainer_1.0.1.1062471739089830306066.jar: Unexpected end of ZLIB input stream
Problems downloading artifact: osgi.bundle,com.chronon.sb.browser.ui,1.0.1.106.
MD5 hash is not as expected. Expected: c9b8267f9b15ded76282a30349d5f1dc and found e43f8a088fd7294da0b5f847b365eca7.
Comment 9 Prashant Deva CLA 2011-03-12 05:41:25 EST
The profile of the eclipse version that is having trouble is 
eclipse.p2.profile=epp.package.java
Comment 10 Prashant Deva CLA 2011-03-12 06:00:30 EST
ok i can make the error happen on a clean install too:

- I uninstalled 'chronon' from eclipse.
- Went and deleted the still remaining files from eclipse/plugins.
- Tried installing again and same error.


I noticed that when the 'wrong' installation is about to happen, the 'size calculation' of the chronon plugin shows 0 bytes during installation.
Screenshot here:
http://www.screencast.com/users/PrashantDeva/folders/Jing/media/85532471-3718-4a02-9813-aefba785ac0a
Comment 11 Thomas Hallgren CLA 2011-03-12 06:04:41 EST
I tried the same on a windows box. Everything seems OK there too.
Comment 12 Thomas Hallgren CLA 2011-03-12 06:07:05 EST
Do you encounter this problem when you manually delete files from eclipse/plugins? That's an absolute no-no. Let p2 deal with the files. Never delete anything under plugins. They will be removed by the garbage collector eventually.
Comment 13 Thomas Hallgren CLA 2011-03-12 06:10:46 EST
(In reply to comment #8)

> Error unzipping
> C:\DOKUME~1\sbe\LOKALE~1\Temp\com.chronon.sb.browser.recordercontainer_1.0.1.1062471739089830306066.jar:
> Unexpected end of ZLIB input stream
> Problems downloading artifact: osgi.bundle,com.chronon.sb.browser.ui,1.0.1.106.
> MD5 hash is not as expected. Expected: c9b8267f9b15ded76282a30349d5f1dc and
> found e43f8a088fd7294da0b5f847b365eca7.

This doesn't seem at all related. It's a different bundle and a different error. If you want to report that you get MD5 hash problems during download, then open a separate bugzilla for that. The likely cause is that some corruption occurred during download.
Comment 14 Prashant Deva CLA 2011-03-12 06:30:51 EST
I do think the issue was the manual deletion of the plugins.
Running the garbage collector manually seems to solve the problem.

I am closing this issue.
Thanks for all the help!