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

Reply via email to