| Summary: | Installation errors with TPTP | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Joel Cayne <jcayne> | ||||
| Component: | p2 | Assignee: | Tim Mok <timothym> | ||||
| Status: | RESOLVED WORKSFORME | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | dj.houghton, eclipse, john.arthorne, pascal, tjwatson | ||||
| Version: | 3.4 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Joel Cayne
I tried this scenerio with N20080408-2000 + the reconciler change for bug 224244 + the fix for the NPE when opening the UI and I was able to install everything. I got a few timeouts when trying to install the original 4 features but they eventually installed ok. Then I installed the TPTP Project Examples feature and restarted my Eclipse. On restart I saw the following error in my log and I got the problems described by bug 226543 but according to the Software Updates dialog, all 5 features were installed ok. osgi> !SESSION 2008-04-10 10:54:22.341 ----------------------------------------------- eclipse.buildId=N20080408-2000 java.version=1.5.0_08 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Command-line arguments: -os win32 -ws win32 -arch x86 -console -consoleLog !ENTRY org.eclipse.equinox.p2.director 2 0 2008-04-10 10:54:33.637 !MESSAGE Problems resolving provisioning plan. !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2008-04-10 10:54:33.647 !MESSAGE No IU found to satisfy dependency from org.eclipse.hyades.resources.database 4.2.201.v200803140100 to requiredCapability: osgi.bundle/org.ecl ipse.tptp.platform.models.lta/[4.5.0,5.0.0). Tom, have you seen these type of signature verification errors before? That message does not make sense. The parameters are reversed in the error message. The error message should be A file "templates/StatReport.rptdesign" has been removed from the jar: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\signatureFile42605.jar I opened bug 226576 to address the incorrect message and the throwing of SecurityException instead of InvalidContentException. This error message should occur if there was a file in the jar when it was signed but it somehow got removed after it was signed. This would indicate a tempering of the jar. Unfortunately we do not know what jar it thinks is corrupted because p2 uses temporary files to store the bits being downloaded so it is difficult to know what jar is corrupt. The it does not help that the verify() method threw an unexpected SecurityException which is a runtime exception that got propagated up the stack. With the fix to bug 226576 we should get a better understanding of what went wrong and what jar is corrupted. I doppped a few former extension locations into the drop-in directory and I get this error (using SDK 3.4 M6a): java.lang.IllegalStateException: BundleContext is no longer valid at org.eclipse.osgi.framework.internal.core.BundleContextImpl.checkValid(BundleContextImpl.java:1337) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getDataFile(BundleContextImpl.java:965) at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepository.<init>(ExtensionLocationMetadataRepository.java:37) at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepositoryFactory.load(ExtensionLocationMetadataRepositoryFactory.java:16) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:382) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:358) at org.eclipse.equinox.internal.provisional.p2.ui.query.QueryableMetadataRepositoryManager.query(QueryableMetadataRepositoryManager.java:89) at org.eclipse.equinox.internal.p2.ui.model.RemoteQueriedElement.fetchChildren(RemoteQueriedElement.java:56) at org.eclipse.equinox.internal.p2.ui.model.RemoteQueriedElement.fetchDeferredChildren(RemoteQueriedElement.java:35) at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:234) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) p2 does not install any of the drop ins. There is no further hint on what is going on. Michael, would it be possible that some these extensions locations contain former versions of the p2 plug-ins? Also I'm not sure how this relates to the initial bug and it may be good to open a new bug. Tim, have you already seen this problem? (In reply to comment #6) > Tim, have you already seen this problem? > I debugged through it and found out what's happening. The content seems to be downloaded correctly (same files when comparing files download with FireFox and ProvAdminUI, compared with a diff utility). The OSGi signed content checker (SignedContentEntry#verify()) says the content is not good because of missing entries, which is true after inspecting the files. However, I tried out the Java jarsigner and it says the content is verified. These are coming from feature jars so I'm not sure how feature jars are supposed to be set up. The feature jars don't have the correct signing information or maybe OSGi is being very strict with the verification. Tim, do you know what jar is flagged as corrupted? It concerns me that we have files that existed in a jar at signing time but then the file got removed somewhere along the way to the update site. To me that is a real corruption. org.eclipse.tptp.monitoring.report.birt.doc.user_4.5.0.v200802291616.jar org.eclipse.tptp.monitoring.report.birt_4.3.0.v200802290100.jar Those are two of the files that were found to be corrupted during my testing. I don't have a full list, though. Can anyone find out why these two jars got files removed from them? The fix in bug 226576 should make the error message more meaningful. Aside from that I don't see how this is a p2 bug unless p2 somehow removed the files to corrupt the jar (unlikely IMO). Created attachment 98453 [details]
error message
I've attached the error message I get with the I20080502-0100 build. This is a bit of a better error message that lists the artifacts that didn't pass signature verification. These are all from installing TPTP Reporting with BIRT. The other features installed without a problem.
Oddly, I did manage to install TPTP Reporting with BIRT after a second attempt.
Which version of TPTP are you using? I have made a change to the order of our packaging which will be in the M7 Ganymede site and that may fix the error. Your explanation of the error has been useful in making that change. (In reply to comment #12) > Which version of TPTP are you using? I have made a change to the order of our > packaging which will be in the M7 Ganymede site and that may fix the error. > Your explanation of the error has been useful in making that change. > I added these two sites to p2: http://download.eclipse.org/tptp/updates/ganymede/site.xml http://download.eclipse.org/releases/ganymede/ I checked off TPTP Reporting with BIRT from the TPTP update site and let p2 resolve any dependencies. I have updated the Ganymede update site to use the M7 driver which I think may have this problem fixed (http://download.eclipse.org/releases/ganymede/staging/) as I didn't see any errors when using p2 and selecting all TPTP options. Closing due to comment #14 suggesting this is no longer an issue. |