Community
Participate
Working Groups
I built against the 3.7 warmup I build. When I fire up my 4.1 eclipse, I get a recursive stack trace that ends with some p2 failures. Some bundles from the install: org.eclipse.equinox.p2.metadata_2.1.0.v20110228.jar org.eclipse.equinox.p2.metadata.repository_1.2.0.v20110305-0130.jar org.eclipse.equinox.p2.repository_2.1.0.v20110305-0130.jar org.eclipse.equinox.p2.reconciler.dropins_1.1.100.v20110207.jar !SESSION 2011-03-07 10:43:56.682 ----------------------------------------------- eclipse.buildId=I20110307-0900 java.fullversion=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr9-20101124_69295 (JIT enabled, AOT enabled) J9VM - 20101124_069295 JIT - r9_20101028_17488ifx2 GC - 20101027_AA BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US Command-line arguments: -os linux -ws gtk -arch x86_64 -data /opt/pwebster/workspaces/e4 !ENTRY org.eclipse.equinox.p2.metadata.repository 4 1003 2011-03-07 10:44:04.816 !MESSAGE Error saving metadata repository: file:/opt/local/e4-self/I20110307-0900/eclipse/configuration/org.eclipse.osgi/bundles/103/data/-1477580214/ !STACK 0 java.io.FileNotFoundException: /opt/local/e4-self/I20110307-0900/eclipse/configuration/org.eclipse.osgi/bundles/103/data/-1477580214/content.jar (Too many open files) at java.io.FileOutputStream.<init>(FileOutputStream.java:190) at java.io.FileOutputStream.<init>(FileOutputStream.java:142) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.save(LocalMetadataRepository.java:302) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.setProperty(LocalMetadataRepository.java:324) at org.eclipse.equinox.p2.repository.spi.AbstractRepository.setProperty(AbstractRepository.java:190) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.save(LocalMetadataRepository.java:306) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.setProperty(LocalMetadataRepository.java:324) at org.eclipse.equinox.p2.repository.spi.AbstractRepository.setProperty(AbstractRepository.java:190) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.save(LocalMetadataRepository.java:306) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.setProperty(LocalMetadataRepository.java:324) [... this goes on for many lines ...] at org.eclipse.equinox.p2.repository.spi.AbstractRepository.setProperty(AbstractRepository.java:190) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.save(LocalMetadataRepository.java:306) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.setProperty(LocalMetadataRepository.java:324) at org.eclipse.equinox.p2.repository.spi.AbstractRepository.setProperty(AbstractRepository.java:190) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.save(LocalMetadataRepository.java:306) at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.removeInstallableUnits(LocalMetadataRepository.java:264) at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.synchronizeMetadataRepository(RepositoryListener.java:212) at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.stopPoll(RepositoryListener.java:185) at org.eclipse.equinox.internal.p2.extensionlocation.BundlePoolFilteredListener.stopPoll(BundlePoolFilteredListener.java:69) at org.eclipse.equinox.internal.p2.extensionlocation.SiteListener.stopPoll(SiteListener.java:371) at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:171) at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109) at org.eclipse.equinox.internal.p2.extensionlocation.SiteListener.synchronizeRepositories(SiteListener.java:111) at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepository.ensureInitialized(ExtensionLocationMetadataRepository.java:66) at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepository.getProperties(ExtensionLocationMetadataRepository.java:194) at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.addRepository(AbstractRepositoryManager.java:127) at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:657) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96) at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92) at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.loadMetadataRepository(Activator.java:99) at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:227) at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:133) at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:171) 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:511) at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:174) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711) at java.security.AccessController.doPrivileged(AccessController.java:251) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
I'll take a look at this, but I'm not sure this is related to my recent changes. My changes were related to the artifact repository, and this appears to fail in the metadata repository. Let me see what's going on here.
oh, never mind... I know exactly what's happening. However, I'm very surprised that none of our tests fail, since any call to setProperty should blow the stack. I'll put a fix in for the 1:00pm build.
*** Bug 339124 has been marked as a duplicate of this bug. ***
Fixed and tagged for the next build. We are overriding a method from AbstractRepository, and in a subclass we explicitly call super. (to get the parent's implementation). With my recent changes, I overloaded that method adding an additional parameter, and then I delegated from the original method to the overloaded one. So in short, in our save() method we call super.setProperties, this delegates right back to the method we were trying to avoid (which calls save(), and the recursion continues). Sorry about that.
Looks good in I20110307-2110. > However, I'm very surprised that none of our tests fail Did you leave the bug open to remember to add a regression test?
*** Bug 339266 has been marked as a duplicate of this bug. ***
We have some regression tests in this area now. They appear to run fine on my machine, altough I think there is some VM specific issues here. Anyways, the bug is fixed and the tests are checked in. I'm marking it M6 since that's when it was actually fixed.