[ https://issues.apache.org/jira/browse/FELIX-1967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798559#action_12798559 ]
Richard S. Hall commented on FELIX-1967: ---------------------------------------- Too bad we can't reproduce it...makes it difficult to debug. I am not convinced it is an infinite loop, but it could be. Since the algorithm is relatively deterministic, I would expect it to do the same thing with the same input, which is why I guess you are likely getting into a situation where you are not starting from a clean slate, e.g., the bundles are not all in the INSTALLED state at the start of the resolve. If you figure out how to reproduce, definitely let me know. I am actually hard at work on a new resolver implementation, since I do know for a fact that the current algorithm can take too long in certain scenarios. Unfortunately, I cannot say if this new algorithm will help your scenario since we cannot reproduce it. I can definitely say that it looks like it greatly improves on some scenarios that take the current resolver a long time. I don't have a definitive time frame for the new resolver yet, since it is still somewhat in its infancy. I am hopeful that I won't run into any roadblocks and this is my top priority right now. If all goes well, I expect it to be part of the next major framework release, but I expect another micro release of the framework before that. > Freeze finding consistent class space > ------------------------------------- > > Key: FELIX-1967 > URL: https://issues.apache.org/jira/browse/FELIX-1967 > Project: Felix > Issue Type: Bug > Components: Framework > Affects Versions: felix-2.0.1 > Reporter: Don Brown > Attachments: felix.m_configMap.txt, MANIFEST.MF, manifests.zip > > > Felix seems to be frozen (as in still running from yesterday) while creating > a consistent class space. Here are excerpts from five thread dumps: > (first three times and the last) > 74012 "http-2990-Processor1" daemon prio=10 tid=0x9048b800 nid=0x52eb > runnable [0x90fcc000..0x90fceeb0] > 74013 java.lang.Thread.State: RUNNABLE > 74014 at > java.util.AbstractCollection.containsAll(AbstractCollection.java:276) > 74015 at > org.apache.felix.framework.searchpolicy.ResolvedPackage.isSubset(ResolvedPackage.java:55) > 74016 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:775) > 74017 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 74018 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 74019 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 74020 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 74021 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 74022 at > org.apache.felix.framework.searchpolicy.Resolver.findConsistentClassSpace(Resolver.java:462) > 74023 at > org.apache.felix.framework.searchpolicy.Resolver.resolve(Resolver.java:94) > 74024 at > org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:3733) > 74025 at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3105) > 74026 at org.apache.felix.framework.Felix.startBundle(Felix.java:1441) > 74027 at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:779) > 74028 at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:760) > (fourth time) > 76082 "http-2990-Processor1" daemon prio=10 tid=0x9048b800 nid=0x52eb > runnable [0x90fcc000..0x90fceeb0] > 76083 java.lang.Thread.State: RUNNABLE > 76084 at java.util.HashMap.put(HashMap.java:385) > 76085 at > org.apache.felix.framework.searchpolicy.Resolver.calculateExportedPackages(Resolver.java:1071) > 76086 at > org.apache.felix.framework.searchpolicy.Resolver.calculateModulePackages(Resolver.java:954) > 76087 at > org.apache.felix.framework.searchpolicy.Resolver.getModulePackages(Resolver.java:929) > 76088 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:697) > 76089 at > org.apache.felix.framework.searchpolicy.Resolver.isClassSpaceConsistent(Resolver.java:720) > 76090 at > org.apache.felix.framework.searchpolicy.Resolver.findConsistentClassSpace(Resolver.java:462) > 76091 at > org.apache.felix.framework.searchpolicy.Resolver.resolve(Resolver.java:94) > 76092 at > org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:3733) > 76093 at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3105) > 76094 at org.apache.felix.framework.Felix.startBundle(Felix.java:1441) > 76095 at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:779) > 76096 at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:760) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.