Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] How to find the newest equinox release?

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 <chris@xxxxxxxxxxxxxxxxx>
To:        equinox-dev@xxxxxxxxxxx
Date:        06/21/2016 08:20 AM
Subject:        Re: [equinox-dev] How to find the newest equinox release?
Sent by:        equinox-dev-bounces@xxxxxxxxxxx




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 <chris@xxxxxxxxxxxxxxxxx>
To:        
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
Date:        
06/21/2016 04:36 AM
Subject:        
[equinox-dev] How to find the newest equinox release?
Sent by:        
equinox-dev-bounces@xxxxxxxxxxx




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

equinox-dev@xxxxxxxxxxx
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
equinox-dev@xxxxxxxxxxx
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
equinox-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev



Back to the top