Upgrade embedded Apache Karaf to version 4.0
Description
Acceptance / Success Criteria
None
blocks
depends on
Lucidchart Diagrams
Activity
Show:
Seth Leger July 10, 2017 at 8:05 PM
Also, here's an earlier incarnation of a similar problem and the commits for it are not present in Karaf 2.4.X, only Karaf 3.0.0+.
Seth Leger July 10, 2017 at 7:13 PM
One of the major problems solved by this upgrade is that Karaf startup should be much more reliable, probably because this bugfix is included in Karaf 4.0.8:
Seth Leger June 14, 2017 at 10:34 AM
Issues with flapping osgi-pluginmanager services have been fixed. PR has been merged, marking as fixed.
Seth Leger May 10, 2017 at 6:08 PM
This is being blocked by flapping in registering the Jersey REST services for the featuremgr and pluginmgr services. Here is a sample stack trace:
2017-05-10 17:21:46,102 DEBUG org.opennms.plugin.featuremanager:1.0.3(177) [pool-17-thread-1] org.opennms.plugin.featuremanager: ServiceEvent REGISTERED - [javax.servlet.http.HttpServlet] - org.opennms.plugi
n.featuremanager
2017-05-10 17:21:46,107 ERROR org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0(181) [pool-17-thread-1] org.ops4j.pax.web.extender.whiteboard.internal.WebApplication: Registration skipped for [ServletWebEl
ement{mapping=DefaultServletMapping{httpContextId=null,urlPatterns=null,initParams={},servlet=com.sun.jersey.spi.container.servlet.ServletContainer@78ad93bd, alias=/featuremgr/rest/v1-0, servletNamenull}}] d
ue to error during registration
com.sun.jersey.api.container.ContainerException: No WebApplication provider is present
at com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69)[57:com.sun.jersey.jersey-server:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:412)[58:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.create(ServletContainer.java:327)[58:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:603)[58:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)[58:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)[58:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)[58:com.sun.jersey.servlet:1.19.0]
at javax.servlet.GenericServlet.init(GenericServlet.java:161)[geronimo-servlet_3.0_spec-1.0.jar:1.0]
at org.opennms.container.web.felix.base.internal.handler.ServletHandler.init(ServletHandler.java:58)[108:org.opennms.container.web.bridge:19.0.0.SNAPSHOT]
at org.opennms.container.web.felix.base.internal.handler.HandlerRegistry.addServlet(HandlerRegistry.java:65)[108:org.opennms.container.web.bridge:19.0.0.SNAPSHOT]
at org.opennms.container.web.felix.base.internal.service.HttpServiceImpl.registerServlet(HttpServiceImpl.java:100)[108:org.opennms.container.web.bridge:19.0.0.SNAPSHOT]
at org.ops4j.pax.web.extender.whiteboard.internal.element.ServletWebElement.register(ServletWebElement.java:61)[181:org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0]
at org.ops4j.pax.web.extender.whiteboard.internal.WebApplication.registerWebElement(WebApplication.java:270)[181:org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0]
at org.ops4j.pax.web.extender.whiteboard.internal.WebApplication.addWebElement(WebApplication.java:127)[181:org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0]
at org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker.addingService(AbstractTracker.java:169)[181:org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0]
at org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker.addingService(AbstractTracker.java:44)[181:org.ops4j.pax.web.pax-web-extender-whiteboard:4.3.0]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)[org.osgi.core-6.0.0.jar:]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)[org.osgi.core-6.0.0.jar:]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)[org.osgi.core-6.0.0.jar:]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)[org.osgi.core-6.0.0.jar:]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)[org.osgi.core-6.0.0.jar:]
at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.felix.framework.Felix.registerService(Felix.java:3549)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)[org.apache.felix.framework-5.6.1.jar:]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:492)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:193)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:746)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:413)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[12:org.apache.aries.blueprint.core:1.7.1]
...
Fixed
Details
Assignee
Seth LegerSeth LegerReporter
Seth LegerSeth LegerComponents
Sprint
NoneFix versions
Affects versions
Priority
Critical
Details
Details
Assignee
Seth Leger
Seth LegerReporter
Seth Leger
Seth LegerComponents
Sprint
None
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty Incident
PagerDuty
PagerDuty Incident
PagerDuty

PagerDuty Incident
Created February 6, 2017 at 4:49 PM
Updated September 20, 2017 at 3:29 PM
Resolved June 14, 2017 at 10:34 AM
To sync up the versions of Apache Karaf used on OpenNMS and Minion, we need to upgrade the Karaf embedded in OpenNMS to version 4.
This will give us several years of bugfixes and dependency management enhancements and will make it easier to maintain features since we only have to target a single version of the container.