[
https://issues.apache.org/jira/browse/SCB-2269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
liubao resolved SCB-2269.
-------------------------
Resolution: Fixed
> fix dealock of XmlViewResolver and SPI bean autowire in blockDeploy
> ---------------------------------------------------------------------
>
> Key: SCB-2269
> URL: https://issues.apache.org/jira/browse/SCB-2269
> Project: Apache ServiceComb
> Issue Type: Bug
> Components: Java-Chassis
> Reporter: liubao
> Assignee: liubao
> Priority: Major
> Fix For: java-chassis-2.3.0
>
>
> --------
> ```
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
> java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:838)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:999)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1306)
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) at
> org.apache.servicecomb.foundation.vertx.VertxUtils.blockDeploy(VertxUtils.java:112)
> at
> org.apache.servicecomb.transport.rest.vertx.VertxRestTransport.init(VertxRestTransport.java:82)
> at
> org.apache.servicecomb.core.transport.TransportManager.init(TransportManager.java:59)
> at org.apache.servicecomb.core.SCBEngine.doRun(SCBEngine.java:386) at
> org.apache.servicecomb.core.SCBEngine.run(SCBEngine.java:324) - locked
> <0x00000000c5849d48> (a org.apache.servicecomb.core.SCBEngine) at
> org.apache.servicecomb.core.CseApplicationListener.onApplicationEvent(CseApplicationListener.java:89)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
> at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
> at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:410)
> at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
> at
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
> - locked <0x00000000c5855b20> (a java.lang.Object) at
> org.springframework.web.servlet.view.XmlViewResolver.initFactory(XmlViewResolver.java:158)
> - locked <0x00000000c5aff990> (a
> org.springframework.web.servlet.view.XmlViewResolver) at
> org.springframework.web.servlet.view.XmlViewResolver.afterPropertiesSet(XmlViewResolver.java:104)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:374)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:127)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1697)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1442)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$74/2067939110.getObject(Unknown
> Source) at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
> - locked <0x00000000c14eaa30> (a java.util.concurrent.ConcurrentHashMap) at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
> at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
> - locked <0x00000000c14d8838> (a java.lang.Object)
> ```
>
>
> ---
> ```
> "vert.x-eventloop-thread-2" #129 prio=5 os_prio=0 tid=0x00007fe92b3e0000
> nid=0x94 waiting for monitor entry
> [0x00007fe7d5fe5000]"vert.x-eventloop-thread-2" #129 prio=5 os_prio=0
> tid=0x00007fe92b3e0000 nid=0x94 waiting for monitor entry
> [0x00007fe7d5fe5000] java.lang.Thread.State: BLOCKED (on object monitor) at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:986)
> - waiting to lock <0x00000000c14eaa30> (a
> java.util.concurrent.ConcurrentHashMap) at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:884)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:619)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:536)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:503)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:620)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:612)
> at
> org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1243)
> at
> org.apache.servicecomb.foundation.common.utils.BeanUtils.addBeans(BeanUtils.java:171)
> at
> org.apache.servicecomb.transport.rest.vertx.RestServerVerticle.initDispatcher(RestServerVerticle.java:223)
> at
> org.apache.servicecomb.transport.rest.vertx.RestServerVerticle.start(RestServerVerticle.java:97)
> at io.vertx.core.Verticle.start(Verticle.java:66)
> ```
--
This message was sent by Atlassian Jira
(v8.3.4#803005)