You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "metatech (JIRA)" <ji...@apache.org> on 2013/02/14 16:58:14 UTC

[jira] [Comment Edited] (SMX4-744) specify camel feature bundle start level less than 60

    [ https://issues.apache.org/jira/browse/SMX4-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13578441#comment-13578441 ] 

metatech edited comment on SMX4-744 at 2/14/13 3:58 PM:
--------------------------------------------------------

The message "did not finish in 10000ms" seems to be caused by the presence of felix "eventadmin" component, probably due to a bug in Felix.  When "eventadmin" is uninstalled, the stop takes a few seconds instead of a few minutes (depending on the number of bundles using the component).  Below is the stack trace which is executed when a using bundle get stopped, in which SMX can get stuck for several minutes :

{code}
"Timer-1" daemon prio=6 tid=0x5fdcd000 nid=0x27c4 in Object.wait() [0x6254f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4820)
	- locked <0x1e555d78> (a [Ljava.lang.Object;)
	at org.apache.felix.framework.Felix.access$400(Felix.java:80)
	at org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:4080)
	at org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1412)
	at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:734)
	at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
	at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
	at org.apache.felix.framework.ServiceRegistrationImpl$ServiceReferenceImpl.isAssignableTo(ServiceRegistrationImpl.java:519)
	at org.apache.felix.framework.util.Util.isServiceAssignable(Util.java:275)
	at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:855)
	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
	at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3772)
	at org.apache.felix.framework.Felix.access$000(Felix.java:80)
	at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:729)
	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:135)
	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:129)
	at org.springframework.osgi.util.OsgiServiceUtils.unregisterService(OsgiServiceUtils.java:41)
	at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.unpublishContextAsOsgiService(AbstractOsgiBundleApplicationContext.java:358)
	at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:195)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:69)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:214)
	at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:210)
	at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:374)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:236)
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:970)
	- locked <0x22a02118> (a java.lang.Object)
	at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$3.run(ContextLoaderListener.java:805)
	at org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:60)
	at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:70)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)

                
      was (Author: metatech):
    The message "did not finish in 10000ms" seems to be caused by the presence of felix "eventadmin" component, probably due to a bug in Felix.  When "eventadmin" is uninstalled, the stop takes a few seconds instead of a few minutes (depending on the number of bundles using the component).  Below is the stack trace which is executed when a using bundle get stopped, in which SMX can get stuck for several minutes :
{code}
"Timer-1" daemon prio=6 tid=0x5fdcd000 nid=0x27c4 in Object.wait() [0x6254f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4820)
	- locked <0x1e555d78> (a [Ljava.lang.Object;)
	at org.apache.felix.framework.Felix.access$400(Felix.java:80)
	at org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:4080)
	at org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1412)
	at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:734)
	at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
	at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
	at org.apache.felix.framework.ServiceRegistrationImpl$ServiceReferenceImpl.isAssignableTo(ServiceRegistrationImpl.java:519)
	at org.apache.felix.framework.util.Util.isServiceAssignable(Util.java:275)
	at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:855)
	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
	at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3772)
	at org.apache.felix.framework.Felix.access$000(Felix.java:80)
	at org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:729)
	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:135)
	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:129)
	at org.springframework.osgi.util.OsgiServiceUtils.unregisterService(OsgiServiceUtils.java:41)
	at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.unpublishContextAsOsgiService(AbstractOsgiBundleApplicationContext.java:358)
	at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:195)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:69)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:214)
	at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:210)
	at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:374)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:236)
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:970)
	- locked <0x22a02118> (a java.lang.Object)
	at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$3.run(ContextLoaderListener.java:805)
	at org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:60)
	at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:70)
	at java.util.TimerThread.mainLoop(Timer.java:512)
	at java.util.TimerThread.run(Timer.java:462)

                  
> specify camel feature bundle start level less than 60
> -----------------------------------------------------
>
>                 Key: SMX4-744
>                 URL: https://issues.apache.org/jira/browse/SMX4-744
>             Project: ServiceMix 4
>          Issue Type: Improvement
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 4.4.0
>
>
> so that the camel related bundles always get started before end users  bundle, this can avoid  lots of asyn  issues customer may encounter.
> More discussion from [1]
> [1]http://servicemix.396122.n5.nabble.com/DISCUSS-how-about-specify-camel-feature-bundle-level-less-than-60-td3334566.html

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira