felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-961) 100% CPU looping inside uses calculation
Date Fri, 27 Feb 2009 17:19:15 GMT

    [ https://issues.apache.org/jira/browse/FELIX-961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677425#action_12677425

Richard S. Hall commented on FELIX-961:

As a side note, from my understanding of how Equinox works, if it detects a resolve is taking
too long, it just takes the best result it has so far and excludes any bundles that could
not resolve and resolves the rest. This approach may make sense for Equinox because it resolves
all unresolved bundles every time it resolves any, but Felix' resolver is incremental, meaning
it only resolves the bundles it needs to resolve.

Thus, in Felix if you resolve bundle foo, only bundles related to foo through dependencies
will be resolved. There are no other byproducts. If foo fails to resolve, then there is no
change to the resolved state. This is not true for Equinox. However, we could potentially
modify Felix' resolver to simply fail if it starts to take too long, rather than run until
it finds a solution or fails (which could take a long time).

Keep in mind that Equinox' "best effort" approach is just a way to end a long resolve, it
doesn't necessarily result in a solution for a particular bundle, it just results in whatever
it could accomplish, which may or may not include the bundle you wanted to resolve.

> 100% CPU looping inside uses calculation
> ----------------------------------------
>                 Key: FELIX-961
>                 URL: https://issues.apache.org/jira/browse/FELIX-961
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.1
>            Reporter: Stuart McCulloch
>            Assignee: Richard S. Hall
>         Attachments: USES_TESTCASE.zip, USES_TESTCASE2.zip
> While investigating a problem report against pax-runner (http://article.gmane.org/gmane.comp.java.ops4j.general/6778)
I found it was actually caused by a 100% CPU loop inside the "uses" calculation code. In Felix
1.4.1 this was stopping the shell bundle from activating, hence the lack of console. Using
the trunk build I can get a console, but the looping still occurs with the testcase.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message