[
https://issues.apache.org/jira/browse/FELIX-5776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Fabian Lange updated FELIX-5776:
--------------------------------
Description:
I have a heapdump (which I cannot share publicly) of a karaf container which
crashed due to out of memory.
The Heapdump shows 30mb occupied by
org.apache.felix.cm.impl.CachingPersistenceManagerProxy including several
related classes.
I am going to attach a few screenshots from MAT/JProfiler.
There are a few threads involved which look interesting.
{code:java}
Thread "CM Configuration Updater (Delete:
pid=ce24c1344-88bb-4c66-bebc-527cc574f347)": at sun.misc.Unsafe.park(boolean,
long) at java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line:
175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
(line: 836) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
int) (line: 870) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int) (line: 1199)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock() (line:
943) at
org.apache.felix.cm.impl.CachingPersistenceManagerProxy.store(java.lang.String,
java.util.Dictionary) (line: 245) at org.apache.felix.cm.impl.Factory.store()
(line: 137) at
org.apache.felix.cm.impl.ConfigurationManager$DeleteConfiguration.run() (line:
1876) at org.apache.felix.cm.impl.UpdateThread.run0(java.lang.Runnable) (line:
141) at org.apache.felix.cm.impl.UpdateThread.run() (line: 109) at
java.lang.Thread.run() (line: 748) Thread "updater-thread-1": at
sun.misc.Unsafe.park(boolean, long) at
java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
java.util.concurrent.FutureTask.awaitDone(boolean, long) (line: 429) at
java.util.concurrent.FutureTask.get() (line: 191) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvisionInThread(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet) (line: 1134) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRequirements(java.util.Map,
java.util.EnumSet) (line: 1077) Thread "features-1-thread-1": at
sun.misc.Unsafe.park(boolean, long) at
java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
(line: 836) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(int)
(line: 967) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(int) (line:
1283) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock()
(line: 727) at
org.apache.felix.cm.impl.CachingPersistenceManagerProxy.getDictionaries(org.apache.felix.cm.impl.SimpleFilter)
(line: 137) at
org.apache.felix.cm.impl.ConfigurationManager.listConfigurations(org.apache.felix.cm.impl.ConfigurationAdminImpl,
java.lang.String) (line: 660) at
org.apache.felix.cm.impl.ConfigurationAdminImpl.listConfigurations(java.lang.String)
(line: 190) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findConfigurations(org.osgi.service.cm.ConfigurationAdmin,
java.lang.String) (line: 605) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findFactoryConfigurations(org.osgi.service.cm.ConfigurationAdmin,
java.lang.String, org.osgi.framework.Bundle) (line: 540) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configureComponentHolder(org.apache.felix.scr.impl.manager.ComponentHolder)
(line: 143) at
org.apache.felix.scr.impl.BundleComponentActivator.setRegionConfigurationSupport(org.osgi.framework.ServiceReference)
(line: 833) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
(line: 71) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
(line: 43) at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(org.osgi.framework.ServiceReference,
org.osgi.framework.ServiceEvent) (line: 941) at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(java.lang.Object,
java.lang.Object) (line: 870) at
org.osgi.util.tracker.AbstractTracked.trackAdding(java.lang.Object,
java.lang.Object) (line: 256) at
org.osgi.util.tracker.AbstractTracked.trackInitial() (line: 183) at
org.osgi.util.tracker.ServiceTracker.open(boolean) (line: 318) at
org.osgi.util.tracker.ServiceTracker.open() (line: 261) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker.<init>(org.apache.felix.scr.impl.manager.ComponentActivator)
(line: 88) at
org.apache.felix.scr.impl.BundleComponentActivator.<init>(org.apache.felix.scr.impl.helper.SimpleLogger,
org.apache.felix.scr.impl.ComponentRegistry,
org.apache.felix.scr.impl.ComponentActorThread,
org.osgi.framework.BundleContext,
org.apache.felix.scr.impl.manager.ScrConfiguration) (line: 274) at
org.apache.felix.scr.impl.Activator.loadComponents(org.osgi.framework.Bundle)
(line: 388) at
org.apache.felix.scr.impl.Activator.access$200(org.apache.felix.scr.impl.Activator,
org.osgi.framework.Bundle) (line: 54) at
org.apache.felix.scr.impl.Activator$ScrExtension.start() (line: 265) at
org.apache.felix.utils.extender.AbstractExtender.createExtension(org.osgi.framework.Bundle)
(line: 254) at
org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(org.osgi.framework.Bundle,
org.osgi.framework.BundleEvent, java.lang.Object) (line: 227) at
org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(org.osgi.framework.Bundle,
org.osgi.framework.BundleEvent, java.lang.Object) (line: 482) at
org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(java.lang.Object,
java.lang.Object, java.lang.Object) (line: 415) at
org.osgi.util.tracker.AbstractTracked.track(java.lang.Object, java.lang.Object)
(line: 232) at
org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(org.osgi.framework.BundleEvent)
(line: 444) at
org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(org.osgi.framework.Bundle,
java.util.EventListener, java.util.EventObject) (line: 915) at
org.apache.felix.framework.EventDispatcher.fireEventImmediately(org.apache.felix.framework.EventDispatcher,
int, java.util.Map, java.util.EventObject, java.util.Dictionary) (line: 834)
at
org.apache.felix.framework.EventDispatcher.fireBundleEvent(org.osgi.framework.BundleEvent,
org.apache.felix.framework.Felix) (line: 516) at
org.apache.felix.framework.Felix.fireBundleEvent(int,
org.osgi.framework.Bundle) (line: 4563) at
org.apache.felix.framework.Felix.startBundle(org.apache.felix.framework.BundleImpl,
int) (line: 2173) at org.apache.felix.framework.BundleImpl.start(int) (line:
998) at org.apache.felix.framework.BundleImpl.start() (line: 984) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(org.osgi.framework.Bundle)
(line: 1346) at
org.apache.karaf.features.internal.service.Deployer.deploy(org.apache.karaf.features.internal.service.Deployer$DeploymentState,
org.apache.karaf.features.internal.service.Deployer$DeploymentRequest) (line:
891) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet, java.lang.String) (line: 1233) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$0(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet, java.lang.String) (line: 1132) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl$$Lambda$16.call()
at java.util.concurrent.FutureTask.run() (line: 266) at
java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker)
(line: 1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run() (line:
617) at java.lang.Thread.run() (line: 748)
{code}
This might as well be a karaf bug.
While it looks like a memory leak, I could also suspect that this might be
cause by a concurrency problem, as the threadump shows multiple updating
threads.
I can provide more details if required, or share the dump privately.
was:
I have a heapdump (which I cannot share publicly) of a karaf container which
crashed due to out of memory.
The Heapdump shows 30mb occupied by
org.apache.felix.cm.impl.CachingPersistenceManagerProxy including several
related classes.
I am going to attach a few screenshots from MAT/JProfiler.
There are a few threads involved which look interesting.
{noformat}
Thread "CM Configuration Updater (Delete:
pid=ce24c1344-88bb-4c66-bebc-527cc574f347)": at sun.misc.Unsafe.park(boolean,
long) at java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line:
175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
(line: 836) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
int) (line: 870) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int) (line: 1199)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock() (line:
943) at
org.apache.felix.cm.impl.CachingPersistenceManagerProxy.store(java.lang.String,
java.util.Dictionary) (line: 245) at org.apache.felix.cm.impl.Factory.store()
(line: 137) at
org.apache.felix.cm.impl.ConfigurationManager$DeleteConfiguration.run() (line:
1876) at org.apache.felix.cm.impl.UpdateThread.run0(java.lang.Runnable) (line:
141) at org.apache.felix.cm.impl.UpdateThread.run() (line: 109) at
java.lang.Thread.run() (line: 748) Thread "updater-thread-1": at
sun.misc.Unsafe.park(boolean, long) at
java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
java.util.concurrent.FutureTask.awaitDone(boolean, long) (line: 429) at
java.util.concurrent.FutureTask.get() (line: 191) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvisionInThread(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet) (line: 1134) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRequirements(java.util.Map,
java.util.EnumSet) (line: 1077) Thread "features-1-thread-1": at
sun.misc.Unsafe.park(boolean, long) at
java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
(line: 836) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(int)
(line: 967) at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(int) (line:
1283) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock()
(line: 727) at
org.apache.felix.cm.impl.CachingPersistenceManagerProxy.getDictionaries(org.apache.felix.cm.impl.SimpleFilter)
(line: 137) at
org.apache.felix.cm.impl.ConfigurationManager.listConfigurations(org.apache.felix.cm.impl.ConfigurationAdminImpl,
java.lang.String) (line: 660) at
org.apache.felix.cm.impl.ConfigurationAdminImpl.listConfigurations(java.lang.String)
(line: 190) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findConfigurations(org.osgi.service.cm.ConfigurationAdmin,
java.lang.String) (line: 605) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findFactoryConfigurations(org.osgi.service.cm.ConfigurationAdmin,
java.lang.String, org.osgi.framework.Bundle) (line: 540) at
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configureComponentHolder(org.apache.felix.scr.impl.manager.ComponentHolder)
(line: 143) at
org.apache.felix.scr.impl.BundleComponentActivator.setRegionConfigurationSupport(org.osgi.framework.ServiceReference)
(line: 833) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
(line: 71) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
(line: 43) at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(org.osgi.framework.ServiceReference,
org.osgi.framework.ServiceEvent) (line: 941) at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(java.lang.Object,
java.lang.Object) (line: 870) at
org.osgi.util.tracker.AbstractTracked.trackAdding(java.lang.Object,
java.lang.Object) (line: 256) at
org.osgi.util.tracker.AbstractTracked.trackInitial() (line: 183) at
org.osgi.util.tracker.ServiceTracker.open(boolean) (line: 318) at
org.osgi.util.tracker.ServiceTracker.open() (line: 261) at
org.apache.felix.scr.impl.helper.ConfigAdminTracker.<init>(org.apache.felix.scr.impl.manager.ComponentActivator)
(line: 88) at
org.apache.felix.scr.impl.BundleComponentActivator.<init>(org.apache.felix.scr.impl.helper.SimpleLogger,
org.apache.felix.scr.impl.ComponentRegistry,
org.apache.felix.scr.impl.ComponentActorThread,
org.osgi.framework.BundleContext,
org.apache.felix.scr.impl.manager.ScrConfiguration) (line: 274) at
org.apache.felix.scr.impl.Activator.loadComponents(org.osgi.framework.Bundle)
(line: 388) at
org.apache.felix.scr.impl.Activator.access$200(org.apache.felix.scr.impl.Activator,
org.osgi.framework.Bundle) (line: 54) at
org.apache.felix.scr.impl.Activator$ScrExtension.start() (line: 265) at
org.apache.felix.utils.extender.AbstractExtender.createExtension(org.osgi.framework.Bundle)
(line: 254) at
org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(org.osgi.framework.Bundle,
org.osgi.framework.BundleEvent, java.lang.Object) (line: 227) at
org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(org.osgi.framework.Bundle,
org.osgi.framework.BundleEvent, java.lang.Object) (line: 482) at
org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(java.lang.Object,
java.lang.Object, java.lang.Object) (line: 415) at
org.osgi.util.tracker.AbstractTracked.track(java.lang.Object, java.lang.Object)
(line: 232) at
org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(org.osgi.framework.BundleEvent)
(line: 444) at
org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(org.osgi.framework.Bundle,
java.util.EventListener, java.util.EventObject) (line: 915) at
org.apache.felix.framework.EventDispatcher.fireEventImmediately(org.apache.felix.framework.EventDispatcher,
int, java.util.Map, java.util.EventObject, java.util.Dictionary) (line: 834)
at
org.apache.felix.framework.EventDispatcher.fireBundleEvent(org.osgi.framework.BundleEvent,
org.apache.felix.framework.Felix) (line: 516) at
org.apache.felix.framework.Felix.fireBundleEvent(int,
org.osgi.framework.Bundle) (line: 4563) at
org.apache.felix.framework.Felix.startBundle(org.apache.felix.framework.BundleImpl,
int) (line: 2173) at org.apache.felix.framework.BundleImpl.start(int) (line:
998) at org.apache.felix.framework.BundleImpl.start() (line: 984) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(org.osgi.framework.Bundle)
(line: 1346) at
org.apache.karaf.features.internal.service.Deployer.deploy(org.apache.karaf.features.internal.service.Deployer$DeploymentState,
org.apache.karaf.features.internal.service.Deployer$DeploymentRequest) (line:
891) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet, java.lang.String) (line: 1233) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$0(java.util.Map,
java.util.Map, org.apache.karaf.features.internal.service.State,
java.util.EnumSet, java.lang.String) (line: 1132) at
org.apache.karaf.features.internal.service.FeaturesServiceImpl$$Lambda$16.call()
at java.util.concurrent.FutureTask.run() (line: 266) at
java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker)
(line: 1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run() (line:
617) at java.lang.Thread.run() (line: 748)
{noformat}
This might as well be a karaf bug.
While it looks like a memory leak, I could also suspect that this might be
cause by a concurrency problem, as the threadump shows multiple updating
threads.
I can provide more details if required, or share the dump privately.
> Memory Leak by Config Admin
> ---------------------------
>
> Key: FELIX-5776
> URL: https://issues.apache.org/jira/browse/FELIX-5776
> Project: Felix
> Issue Type: Bug
> Components: Configuration Admin
> Affects Versions: configadmin-1.8.16
> Reporter: Fabian Lange
> Priority: Major
> Attachments: Screen Shot 2018-01-22 at 11.26.39.png, Screen Shot
> 2018-01-22 at 11.28.14.png
>
>
> I have a heapdump (which I cannot share publicly) of a karaf container which
> crashed due to out of memory.
> The Heapdump shows 30mb occupied by
> org.apache.felix.cm.impl.CachingPersistenceManagerProxy including several
> related classes.
> I am going to attach a few screenshots from MAT/JProfiler.
> There are a few threads involved which look interesting.
> {code:java}
> Thread "CM Configuration Updater (Delete:
> pid=ce24c1344-88bb-4c66-bebc-527cc574f347)": at sun.misc.Unsafe.park(boolean,
> long) at java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line:
> 175) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> (line: 836) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(java.util.concurrent.locks.AbstractQueuedSynchronizer$Node,
> int) (line: 870) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(int) (line:
> 1199) at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock()
> (line: 943) at
> org.apache.felix.cm.impl.CachingPersistenceManagerProxy.store(java.lang.String,
> java.util.Dictionary) (line: 245) at
> org.apache.felix.cm.impl.Factory.store() (line: 137) at
> org.apache.felix.cm.impl.ConfigurationManager$DeleteConfiguration.run()
> (line: 1876) at
> org.apache.felix.cm.impl.UpdateThread.run0(java.lang.Runnable) (line: 141) at
> org.apache.felix.cm.impl.UpdateThread.run() (line: 109) at
> java.lang.Thread.run() (line: 748) Thread "updater-thread-1": at
> sun.misc.Unsafe.park(boolean, long) at
> java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
> java.util.concurrent.FutureTask.awaitDone(boolean, long) (line: 429) at
> java.util.concurrent.FutureTask.get() (line: 191) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvisionInThread(java.util.Map,
> java.util.Map, org.apache.karaf.features.internal.service.State,
> java.util.EnumSet) (line: 1134) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.addRequirements(java.util.Map,
> java.util.EnumSet) (line: 1077) Thread "features-1-thread-1": at
> sun.misc.Unsafe.park(boolean, long) at
> java.util.concurrent.locks.LockSupport.park(java.lang.Object) (line: 175) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()
> (line: 836) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(int)
> (line: 967) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(int)
> (line: 1283) at
> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock() (line: 727)
> at
> org.apache.felix.cm.impl.CachingPersistenceManagerProxy.getDictionaries(org.apache.felix.cm.impl.SimpleFilter)
> (line: 137) at
> org.apache.felix.cm.impl.ConfigurationManager.listConfigurations(org.apache.felix.cm.impl.ConfigurationAdminImpl,
> java.lang.String) (line: 660) at
> org.apache.felix.cm.impl.ConfigurationAdminImpl.listConfigurations(java.lang.String)
> (line: 190) at
> org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findConfigurations(org.osgi.service.cm.ConfigurationAdmin,
> java.lang.String) (line: 605) at
> org.apache.felix.scr.impl.manager.RegionConfigurationSupport.findFactoryConfigurations(org.osgi.service.cm.ConfigurationAdmin,
> java.lang.String, org.osgi.framework.Bundle) (line: 540) at
> org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configureComponentHolder(org.apache.felix.scr.impl.manager.ComponentHolder)
> (line: 143) at
> org.apache.felix.scr.impl.BundleComponentActivator.setRegionConfigurationSupport(org.osgi.framework.ServiceReference)
> (line: 833) at
> org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
> (line: 71) at
> org.apache.felix.scr.impl.helper.ConfigAdminTracker$1.addingService(org.osgi.framework.ServiceReference)
> (line: 43) at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(org.osgi.framework.ServiceReference,
> org.osgi.framework.ServiceEvent) (line: 941) at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(java.lang.Object,
> java.lang.Object) (line: 870) at
> org.osgi.util.tracker.AbstractTracked.trackAdding(java.lang.Object,
> java.lang.Object) (line: 256) at
> org.osgi.util.tracker.AbstractTracked.trackInitial() (line: 183) at
> org.osgi.util.tracker.ServiceTracker.open(boolean) (line: 318) at
> org.osgi.util.tracker.ServiceTracker.open() (line: 261) at
> org.apache.felix.scr.impl.helper.ConfigAdminTracker.<init>(org.apache.felix.scr.impl.manager.ComponentActivator)
> (line: 88) at
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(org.apache.felix.scr.impl.helper.SimpleLogger,
> org.apache.felix.scr.impl.ComponentRegistry,
> org.apache.felix.scr.impl.ComponentActorThread,
> org.osgi.framework.BundleContext,
> org.apache.felix.scr.impl.manager.ScrConfiguration) (line: 274) at
> org.apache.felix.scr.impl.Activator.loadComponents(org.osgi.framework.Bundle)
> (line: 388) at
> org.apache.felix.scr.impl.Activator.access$200(org.apache.felix.scr.impl.Activator,
> org.osgi.framework.Bundle) (line: 54) at
> org.apache.felix.scr.impl.Activator$ScrExtension.start() (line: 265) at
> org.apache.felix.utils.extender.AbstractExtender.createExtension(org.osgi.framework.Bundle)
> (line: 254) at
> org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(org.osgi.framework.Bundle,
> org.osgi.framework.BundleEvent, java.lang.Object) (line: 227) at
> org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(org.osgi.framework.Bundle,
> org.osgi.framework.BundleEvent, java.lang.Object) (line: 482) at
> org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(java.lang.Object,
> java.lang.Object, java.lang.Object) (line: 415) at
> org.osgi.util.tracker.AbstractTracked.track(java.lang.Object,
> java.lang.Object) (line: 232) at
> org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(org.osgi.framework.BundleEvent)
> (line: 444) at
> org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(org.osgi.framework.Bundle,
> java.util.EventListener, java.util.EventObject) (line: 915) at
> org.apache.felix.framework.EventDispatcher.fireEventImmediately(org.apache.felix.framework.EventDispatcher,
> int, java.util.Map, java.util.EventObject, java.util.Dictionary) (line: 834)
> at
> org.apache.felix.framework.EventDispatcher.fireBundleEvent(org.osgi.framework.BundleEvent,
> org.apache.felix.framework.Felix) (line: 516) at
> org.apache.felix.framework.Felix.fireBundleEvent(int,
> org.osgi.framework.Bundle) (line: 4563) at
> org.apache.felix.framework.Felix.startBundle(org.apache.felix.framework.BundleImpl,
> int) (line: 2173) at org.apache.felix.framework.BundleImpl.start(int) (line:
> 998) at org.apache.felix.framework.BundleImpl.start() (line: 984) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(org.osgi.framework.Bundle)
> (line: 1346) at
> org.apache.karaf.features.internal.service.Deployer.deploy(org.apache.karaf.features.internal.service.Deployer$DeploymentState,
> org.apache.karaf.features.internal.service.Deployer$DeploymentRequest)
> (line: 891) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(java.util.Map,
> java.util.Map, org.apache.karaf.features.internal.service.State,
> java.util.EnumSet, java.lang.String) (line: 1233) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$0(java.util.Map,
> java.util.Map, org.apache.karaf.features.internal.service.State,
> java.util.EnumSet, java.lang.String) (line: 1132) at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl$$Lambda$16.call()
> at java.util.concurrent.FutureTask.run() (line: 266) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker)
> (line: 1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run() (line:
> 617) at java.lang.Thread.run() (line: 748)
> {code}
> This might as well be a karaf bug.
> While it looks like a memory leak, I could also suspect that this might be
> cause by a concurrency problem, as the threadump shows multiple updating
> threads.
> I can provide more details if required, or share the dump privately.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)