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
