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

Bug 234579

Summary: Invalid zips cause p2 to freeze
Product: [Eclipse Project] Equinox Reporter: Benjamin Muskalla <b.muskalla>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: jed.anderson, pascal
Version: 3.4   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Benjamin Muskalla CLA 2008-05-29 06:49:26 EDT
I20080519-2000

Just installed several datatools from the ganymede staging site yesterday and another third party plugin. Seemed to work fine but today I cannot start p2 anymore.

When trying to open Help | Software updates my whole Eclipse freezes and I have to kill it.

In my logs there are five of the following exceptions:

!ENTRY org.eclipse.equinox.p2.metadata.generator 2 0 2008-05-29 11:49:29.583
!MESSAGE An error occurred while loading the bundle manifest.
!STACK 0
java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:114)
        at org.eclipse.equinox.internal.provisional.p2.metadata.generator.BundleDescriptionFactory.loadManifest(BundleDescriptionFactory.java:124)
        at org.eclipse.equinox.internal.provisional.p2.metadata.generator.BundleDescriptionFactory.getBundleDescription(BundleDescriptionFactory.java:96)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.isBundle(RepositoryListener.java:223)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.added(RepositoryListener.java:193)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.processFile(DirectoryWatcher.java:200)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.scanDirectories(DirectoryWatcher.java:161)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:108)
        at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepository.ensureInitialized(ExtensionLocationArtifactRepository.java:70)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:217)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:120)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:344)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:144)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:1009)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:1003)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:984)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:355)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1074)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:616)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:299)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:489)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:211)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:321)

When an invalid zip is found p2 should only warn me but should not freeze my Eclipse. As I cannot see which bundles have the problems it's now really hard to  see the cause and how to solve it. The problem is that I can't even roll back anything as p2 ui does not even start.

I think this is a really critical thing and should be fixed if possible in any way before the release.
Comment 1 Pascal Rapicault CLA 2008-05-29 08:08:31 EDT
Ben could you please try again with RC2 or one of this week I-build and also mention the name of the things you have installed so we can track where this would be coming from.
Also you say "When an invalid zip is found p2 should only warn me but should not freeze my Eclipse.", a few thread dumps would help.
Comment 2 John Arthorne CLA 2008-05-29 09:16:52 EDT
Ben, are you sure the freeze is related to the invalid zips? There was a bug in RC1 about the update dialog taking a long time to open (bug 232413). That could be what you are experiencing and it may be unrelated to the invalid zips. Please try again with RC2.
Comment 3 Pascal Rapicault CLA 2008-06-14 08:17:24 EDT
Closing as worksforme because we have not been able to reproduce and the stack trace unfortunately lack details (this has been fixed). Also the freeze does not seem to be related to the zip error.
Please re-open or open another bug if you have more details.