I don't know the internals of Felix framework well.  But in discussions 
with Richard Hall I know it used to have a rather coarse grain locking 
strategy for installing, resolving and setting of start-levels.  This lock 
may be preventing the situation by blocking some thread from starting the 
bundles while all the bundles get installed.  The Equinox Luna release 
redid its locking strategy in the Equinox framework to allow more 
concurrent read-access to the internal bundle state (or container).

What I suspect is going on is that in a background thread karaf is 
installing and starting bundles and setting their start-level value 
one-by-one, instead of installing all bundles, then setting their 
start-levels and finally starting all bundles.  Meanwhile another thread 
(the framework start-level thread) is performing the background operation 
to set the bundle start-levels (one-by-one).  Since the bundles have been 
marked for start and their start-level is satisfied the framework attempts 
to start the bundle.  But the bundle may not be resolved yet, and it may 
not be resolvable because karaf has not installed all the necessary 
bundles yet.

I suspect you are getting "lucky" on felix because something in its 
locking strategy is blocking the unlucky start-level thread while karaf 
finishes installing all the necessary bundles.

Tom





From:   Christian Schneider <[email protected]>
To:     [email protected]
Date:   06/21/2016 08:20 AM
Subject:        Re: [equinox-dev] How to find the newest equinox release?
Sent by:        [email protected]



Thanks for the explanations. The new repo sounds very good. I hope you 
plan to also publish to central at some point but having a repo at all 
would be a really big step.
I have the sources but it is a bit difficult to compare to felix if they 
do not reflect a complete release. So for example it is difficult to see 
which issues should be fixed and which not.

I have also debugged a bit more into my karaf problem.
http://apaste.info/btL

This is the code that causes the log message:

at 
org.eclipse.osgi.container.Module.start(Module.java:434)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
 

at 
org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1498)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
at 
org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]

>From the code and trace this could mean that the framework start level was 
changed. So the bundles are started. Is this correct?
Strangely this seems to happen while karaf is installing the individual 
bundles. So only some of them are installed and the resolve fails.
I am not sure where this start level change originates from but if I 
switch to felix this does not seem to happen.

So something seems to be different between the two frameworks.

I would be happy about any hints. Apart from that I will dig into the 
karaf feature service to get an idea what is happening there that could 
trigger this. I originally thought that karaf
might set the bundle start level at this point but I am not sure.

Christian



On 21.06.2016 14:55, Thomas Watson wrote:
We just setup a nexus repo for the Equinox project but still need to setup 
the process for populating it with the Equinox releases:

John Ross and I are planning to get a process going soon to get the new 
repo populated.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=494491

As for the Felix resolver source.  We have needed to keep up with the very 
latest in trunk to fix bugs as needed.  When the bug is critical (for 
example, prevents Eclipse from launching) I fix the bugs first in Equinox 
and (always) immediately contribute back to felix trunk the fix.  Are you 
not able to find the source for Equinox?  The equinox and eclipse SDKs 
contain the source jars which include the felix source included in 
Equinox.

Tom





From:        Christian Schneider <[email protected]>
To:        Equinox development mailing list <[email protected]>
Date:        06/21/2016 04:36 AM
Subject:        [equinox-dev] How to find the newest equinox release?
Sent by:        [email protected]



I currently have problems with Apache Karaf when switching to equinox.

See:
http://apaste.info/btL

It happens with the default equinox that karaf ships which is 3.10.2 
provided by birt in maven central.

I looked into the equinox project pages to find a newer release:
http://download.eclipse.org/equinox/

The latest stable release seems to be mars2 which leads to:
http://download.eclipse.org/equinox/drops/R-Mars.2-201602121500/download.php?dropFile=org.eclipse.osgi_3.10.102.v20160118-1700.jar


Unfortunately this release does not seem to be available in maven central 
at all.
The latest release there seems to be 
<dependency>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>org.eclipse.osgi</artifactId>
    <version>3.10.101.v20150820-1432</version>
</dependency>

So this one seems to be provided by tycho now? Are these releases by birt 
and tycho guaranteed to reflect the real equinox releases or are they 
maybe patching equinox?
Is there any better way? Does equinox have any maven repo where it puts 
its official releases? I think there were discussions about that a while 
ago but the discussion was kind of stuck at some point.

Another question is about the included felix resolver. The last time I 
looked into this the resolver sources were copied into the equinox 
sources. They were not equal to any
release of the felix resolver. Instead as far as I can remember the 
changes were cherry picked from some of the resolver commits. This makes 
it really difficult to tell how equinox behaves.
Is there any improvement in sight? 

Christian

-- 
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
_______________________________________________
equinox-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe 
from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev




_______________________________________________
equinox-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe 
from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev


-- 
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com
_______________________________________________
equinox-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe 
from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev



_______________________________________________
equinox-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to