The log is already obvious.
When the main thread initializes the spring container, it locks 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#singletonObjects
 and then tries to lock a RegistryDirectory when executing 
MulticastRegistry.doSubscribe.

The DubboMulticastRegistryReceiver thread locks the RegistryDirectory when it 
is in MulticastRegistry.receive. When it gets the bean, it tries to lock 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#singletonObjects
 and deadlock.

So it seems that we need to synchronize the execution of 
MulticastRegistry.this.receive in the MulticastRegistry constructor to 
eliminate deadlock.

[ Full content available at: 
https://github.com/apache/incubator-dubbo/issues/2539 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to