[
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.