[ https://issues.apache.org/jira/browse/FELIX-5648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17577933#comment-17577933 ]
Jörg Kubitz commented on FELIX-5648: ------------------------------------ Given the reproducer in [https://github.com/eclipse-equinox/equinox/issues/93#issuecomment-1209499423] JFR and VisualVM both show many samples near ResolverImpl.checkPackageSpaceConsistency() lines: 1442-1448 Thats basically a hash join but iterating over allImportRequirePkgs which is often >>10 times bigger then pkgs.m_usedPkgs. Especially if pkgs.m_usedPkgs is empty (happens) the construction of allImportRequirePkgs could be totally avoided. screenshots see [https://github.com/eclipse-tycho/tycho/issues/213#issuecomment-1210491586] Do you want minor hints like this to improve the performance? > ResolverImpl infinite loop > -------------------------- > > Key: FELIX-5648 > URL: https://issues.apache.org/jira/browse/FELIX-5648 > Project: Felix > Issue Type: Bug > Components: Resolver > Affects Versions: framework-5.4.0, framework-5.6.0, framework-5.6.4, > resolver-1.14.0 > Environment: java 1.8 > win10 > bndtools 3.4.0 > Reporter: Stefan Bischof > Priority: Blocker > > If i run the following bundles felix did not start properly.. cpu went up. > nothing happened. > equinox can handle it > JaxpXercesXalanBatic.bndrun: > -runbundles: \ > my.sandbox.batikonly;version=snapshot,\ > org.apache.felix.scr;version='[2.0.6,2.0.7)',\ > org.apache.felix.configadmin;version='[1.8.12,1.8.13)',\ > org.apache.felix.gogo.command;version='[0.16.0,0.16.1)',\ > org.apache.felix.gogo.runtime;version='[0.16.2,0.16.3)',\ > org.apache.felix.metatype;version='[1.1.2,1.1.3)',\ > org.apache.servicemix.bundles.batik;version='[1.9.0,1.9.1)',\ > org.apache.servicemix.bundles.bcel;version='[5.2.0,5.2.1)',\ > org.apache.servicemix.bundles.xalan;version='[2.7.2,2.7.3)',\ > org.apache.servicemix.bundles.xerces;version='[2.11.0,2.11.1)',\ > org.apache.servicemix.bundles.xmlresolver;version='[1.2.0,1.2.1)',\ > org.apache.servicemix.specs.jaxp-api-1.4;version='[2.7.0,2.7.1)' > if i remove > org.apache.servicemix.bundles.batik;version='[1.9.0,1.9.1)',\ > it will work. > I debugged the bnd launcher > Launcher asks the deprecated PackageAdmin > // Get the resolved status > if (padmin != null && padmin.resolveBundles(null) == false) { > From here it is felix > there is a loop at: > ResolverImpl.resolve(ResolveContext, Executor) line: 347 > ResolverImpl.resolve(ResolveContext) line: 158 > StatefulResolver.resolve(Set<BundleRevision>, Set<BundleRevision>) line: 431 > > Felix.resolveBundles(Collection<Bundle>) line: 4070 > FrameworkWiringImpl.resolveBundles(Collection<Bundle>) line: 133 > PackageAdminImpl.resolveBundles(Bundle[]) line: 263 > Launcher.update(long) line: 472 > Launcher.activate() line: 400 > Launcher.run(String[]) line: 283 > Launcher.main(String[]) line: 138 > https://github.com/JohneDoe/Jasperreport-Osgi/tree/master/my.sandbox.batikonly > https://groups.google.com/forum/#!topic/bndtools-users/CoTHIy5ONgQ -- This message was sent by Atlassian Jira (v8.20.10#820010)