You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Robert Munteanu (JIRA)" <ji...@apache.org> on 2019/08/06 11:53:00 UTC
[jira] [Created] (OAK-8530) Ensure MBean are deregister if the
repository fails to start
Robert Munteanu created OAK-8530:
------------------------------------
Summary: Ensure MBean are deregister if the repository fails to start
Key: OAK-8530
URL: https://issues.apache.org/jira/browse/OAK-8530
Project: Jackrabbit Oak
Issue Type: Improvement
Components: core
Reporter: Robert Munteanu
Assignee: Robert Munteanu
Fix For: 1.18.0
When used in OSGi environments the repository service is unfortunately prone to restarts ( see SLING-7811 for the gory details ). Besides the performance problem, the repository typically fails to restart since MBeans that were registered once were not deregistered. The failures happen before repository is constructed, so there is no instance to close.
A typical stack trace is
{noformat}
06.08.2019 09:55:03.894 *ERROR* [Apache Sling Repository Startup Thread #4] org.apache.aries.jmx.whiteboard.MBeanHolder register: Failure registering MBean org.apache.jackrabbit.oak.management.RepositoryManager@5e05b159
javax.management.InstanceAlreadyExistsException: org.apache.jackrabbit.oak:name=repository manager,type=RepositoryManagement
at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
at org.apache.aries.jmx.whiteboard.MBeanHolder.register(MBeanHolder.java:114)
at org.apache.aries.jmx.whiteboard.JmxWhiteboardSupport.registerMBean(JmxWhiteboardSupport.java:88)
at org.apache.aries.jmx.whiteboard.Activator$MBeanTracker.addingService(Activator.java:102)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:871)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903)
at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833)
at org.apache.felix.framework.Felix.registerService(Felix.java:3804)
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328)
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:302)
at org.apache.jackrabbit.oak.osgi.OsgiWhiteboard.register(OsgiWhiteboard.java:79)
at org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean(WhiteboardUtils.java:115) [org.apache.jackrabbit.oak-core-spi:1.18.0.SNAPSHOT]
at org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean(WhiteboardUtils.java:99) [org.apache.jackrabbit.oak-core-spi:1.18.0.SNAPSHOT]
at org.apache.jackrabbit.oak.Oak.createNewContentRepository(Oak.java:772) [org.apache.jackrabbit.oak-core:1.18.0.SNAPSHOT]
at org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:671) [org.apache.jackrabbit.oak-core:1.18.0.SNAPSHOT]
at org.apache.jackrabbit.oak.jcr.Jcr.createContentRepository(Jcr.java:376) [org.apache.jackrabbit.oak-jcr:1.18.0.SNAPSHOT]
at org.apache.sling.jcr.oak.server.internal.OakSlingRepositoryManager.acquireRepository(OakSlingRepositoryManager.java:152) [org.apache.sling.jcr.oak.server:1.2.2]
at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:481) [org.apache.sling.jcr.base:3.0.6]
at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:86) [org.apache.sling.jcr.base:3.0.6]
{noformat}
I will propose a patch shortly.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)