Home » Eclipse Projects » Virgo » Occasional start-up failure due to synchronisation in Virgo kernel
Occasional start-up failure due to synchronisation in Virgo kernel [message #894823] |
Tue, 10 July 2012 16:24 |
Daniel McGreal Messages: 27 Registered: April 2012 |
Junior Member |
|
|
Hi,
While using Virgo 2.1.1, my application occasionally (50/50) fails to start. I'm not sure of my interpretation of the issue, but it appears to me to be due to two "region-dm" threads, the 'first' of which is waiting on a ConcurrentHashMap owned by the 'second' which is monitoring because of the first. The map is classNameLocks in ClasspathManager, synchronised at line 510. The monitor is KernelBundleClassLoader.checkCerts, line 933. Relevant stack traces follow, please let me know what additional information I can provide:
Thread [region-dm-10] (Suspended)
owns: Object (id=163)
owns: KernelBundleClassLoader (id=154)
waited by: Thread [region-dm-12] (Suspended)
waited by: Thread [start-signalling-2] (Suspended)
waiting for: HashMap<K,V> (id=162)
Object.wait(long) line: not available [native method]
HashMap<K,V>(Object).wait() line: 503
ClasspathManager.lockClassName(String) line: 510
ClasspathManager.findLocalClass_LockClassName(String, ClassLoadingStatsHook[]) line: 458
ClasspathManager.findLocalClass(String) line: 447
KernelBundleClassLoader(DefaultClassLoader).findLocalClass(String) line: 216
BundleLoader.findLocalClass(String) line: 393
BundleLoader.findClassInternal(String, boolean, ClassLoader) line: 469
BundleLoader.findClass(String, boolean) line: 422
BundleLoader.findClass(String) line: 410
KernelBundleClassLoader(DefaultClassLoader).loadClass(String, boolean) line: 107
KernelBundleClassLoader.loadClass(String, boolean) line: 135
KernelBundleClassLoader(ClassLoader).loadClass(String) line: 356
ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method]
KernelBundleClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 791
KernelBundleClassLoader(DefaultClassLoader).defineClass(String, byte[], ClasspathEntry, BundleEntry) line: 188
KernelBundleClassLoader.defineClass(String, byte[], ClasspathEntry, BundleEntry) line: 239
ClasspathManager.defineClass(String, byte[], ClasspathEntry, BundleEntry, ClassLoadingStatsHook[]) line: 580
ClasspathManager.findClassImpl(String, ClasspathEntry, ClassLoadingStatsHook[]) line: 550
ClasspathManager.findLocalClassImpl(String, ClassLoadingStatsHook[]) line: 481
ClasspathManager.findLocalClass_LockClassName(String, ClassLoadingStatsHook[]) line: 460
ClasspathManager.findLocalClass(String) line: 447
KernelBundleClassLoader(DefaultClassLoader).findLocalClass(String) line: 216
BundleLoader.findLocalClass(String) line: 393
BundleLoader.findClassInternal(String, boolean, ClassLoader) line: 469
BundleLoader.findClass(String, boolean) line: 422
BundleLoader.findClass(String) line: 410
KernelBundleClassLoader(DefaultClassLoader).loadClass(String, boolean) line: 107
KernelBundleClassLoader.loadClass(String, boolean) line: 135
KernelBundleClassLoader(ClassLoader).loadClass(String) line: 356
BundleLoader.loadClass(String) line: 338
BundleHost.loadClass(String, boolean) line: 232
BundleHost(AbstractBundle).loadClass(String) line: 1197
BundleDelegatingClassLoader.findClass(String) line: 99
BundleDelegatingClassLoader.loadClass(String, boolean) line: 156
BundleDelegatingClassLoader(ClassLoader).loadClass(String) line: 356
ClassUtils.forName(String, ClassLoader) line: 257
RootBeanDefinition(AbstractBeanDefinition).resolveBeanClass(ClassLoader) line: 408
DefaultListableBeanFactory(AbstractBeanFactory).doResolveBeanClass(RootBeanDefinition, Class...) line: 1271
DefaultListableBeanFactory(AbstractBeanFactory).resolveBeanClass(RootBeanDefinition, String, Class...) line: 1242
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).predictBeanType(String, RootBeanDefinition, Class[]) line: 576
DefaultListableBeanFactory(AbstractBeanFactory).isFactoryBean(String, RootBeanDefinition) line: 1319
DefaultListableBeanFactory.getBeanNamesForType(Class, boolean, boolean) line: 315
OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplicationContext).invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory, Class, Class) line: 424
OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplicationContext).invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory) line: 395
AbstractDelegatedExecutionApplicationContext$3.run() line: 281
PrivilegedUtils.executeWithCustomTCCL(ClassLoader, PrivilegedUtils$UnprivilegedExecution) line: 85
OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplicationContext).startRefresh() line: 247
DependencyWaiterApplicationContextExecutor.stageOne() line: 214
DependencyWaiterApplicationContextExecutor.refresh() line: 169
OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplicationContext).refresh() line: 175
ContextLoaderListener$2.run() line: 716
ContextPropagatingTaskExecutor$2.run() line: 95
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110
ThreadPoolExecutor$Worker.run() line: 603
Thread.run() line: 722
Thread [region-dm-12] (Suspended)
owns: ConcurrentHashMap<K,V> (id=155)
waiting for: KernelBundleClassLoader (id=154)
KernelBundleClassLoader(ClassLoader).checkCerts(String, CodeSource) line: 933
KernelBundleClassLoader(ClassLoader).preDefineClass(String, ProtectionDomain) line: 657
KernelBundleClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 785
KernelBundleClassLoader(DefaultClassLoader).defineClass(String, byte[], ClasspathEntry, BundleEntry) line: 188
KernelBundleClassLoader.defineClass(String, byte[], ClasspathEntry, BundleEntry) line: 239
ClasspathManager.defineClass(String, byte[], ClasspathEntry, BundleEntry, ClassLoadingStatsHook[]) line: 580
ClasspathManager.findClassImpl(String, ClasspathEntry, ClassLoadingStatsHook[]) line: 550
ClasspathManager.findLocalClassImpl(String, ClassLoadingStatsHook[]) line: 481
ClasspathManager.findLocalClass_LockClassName(String, ClassLoadingStatsHook[]) line: 460
ClasspathManager.findLocalClass(String) line: 447
KernelBundleClassLoader(DefaultClassLoader).findLocalClass(String) line: 216
BundleLoader.findLocalClass(String) line: 393
SingleSourcePackage.loadClass(String) line: 33
BundleLoader.findClassInternal(String, boolean, ClassLoader) line: 457
BundleLoader.findClass(String, boolean) line: 422
BundleLoader.findClass(String) line: 410
KernelBundleClassLoader(DefaultClassLoader).loadClass(String, boolean) line: 107
KernelBundleClassLoader.loadClass(String, boolean) line: 135
KernelBundleClassLoader(ClassLoader).loadClass(String) line: 356
BundleLoader.loadClass(String) line: 338
BundleHost.loadClass(String, boolean) line: 232
BundleHost(AbstractBundle).loadClass(String) line: 1197
BundleDelegatingClassLoader.findClass(String) line: 99
BundleDelegatingClassLoader.loadClass(String, boolean) line: 156
BundleDelegatingClassLoader(ClassLoader).loadClass(String) line: 356
ClassUtils.forName(String, ClassLoader) line: 257
ClassUtils.resolveClassName(String, ClassLoader) line: 290
ClassArrayEditor.setAsText(String) line: 68
TypeConverterDelegate.doConvertTextValue(Object, String, PropertyEditor) line: 416
TypeConverterDelegate.doConvertValue(Object, Object, Class<?>, PropertyEditor) line: 388
TypeConverterDelegate.convertIfNecessary(String, Object, Object, Class<T>, TypeDescriptor) line: 157
BeanWrapperImpl.convertIfNecessary(String, Object, Object, Class<?>, TypeDescriptor) line: 447
BeanWrapperImpl.convertForProperty(String, Object, Object, PropertyDescriptor) line: 499
BeanWrapperImpl.convertForProperty(Object, String) line: 493
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).convertForProperty(Object, String, BeanWrapper, TypeConverter) line: 1371
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).applyPropertyValues(String, BeanDefinition, BeanWrapper, PropertyValues) line: 1330
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).populateBean(String, AbstractBeanDefinition, BeanWrapper) line: 1086
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, RootBeanDefinition, Object[]) line: 517
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, RootBeanDefinition, Object[]) line: 456
AbstractBeanFactory$1.getObject() line: 291
DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, ObjectFactory) line: 222
DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class<T>, Object[], boolean) line: 288
DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: 190
MandatoryImporterDependencyFactory.getServiceDependencies(BundleContext, ConfigurableListableBeanFactory) line: 63
DependencyServiceManager.doFindDependencies() line: 272
DependencyServiceManager.access$700(DependencyServiceManager) line: 40
DependencyServiceManager$1.run() line: 213
PrivilegedUtils.executeWithCustomTCCL(ClassLoader, PrivilegedUtils$UnprivilegedThrowableExecution) line: 124
DependencyServiceManager.findServiceDependencies() line: 209
DependencyWaiterApplicationContextExecutor.stageOne() line: 239
DependencyWaiterApplicationContextExecutor.refresh() line: 169
OsgiBundleXmlApplicationContext(AbstractDelegatedExecutionApplicationContext).refresh() line: 175
ContextLoaderListener$2.run() line: 716
ContextPropagatingTaskExecutor$2.run() line: 95
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110
ThreadPoolExecutor$Worker.run() line: 603
Thread.run() line: 722
|
|
| | | | | |
Goto Forum:
Current Time: Wed Sep 25 11:54:41 GMT 2024
Powered by FUDForum. Page generated in 0.05554 seconds
|