You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "LiosWong (GitHub)" <gi...@apache.org> on 2020/03/03 07:14:22 UTC
[GitHub] [dubbo] LiosWong commented on issue #5813: destroyAll method
of DubboShutdownHook will be invoke twice when using spring framework
报错问题还没解决:
```
[03/03/20 11:50:06:453 CST] Thread-0 WARN config.DubboShutdownHook: [DUBBO] There's no ApplicationConfig specified., dubbo version: , current host: 192.168.124.10
java.lang.IllegalStateException: There's no ApplicationConfig specified.
at org.apache.dubbo.config.context.ConfigManager.lambda$getApplicationOrElseThrow$0(ConfigManager.java:88)
at java.util.Optional.orElseThrow(Optional.java:290)
at org.apache.dubbo.config.context.ConfigManager.getApplicationOrElseThrow(ConfigManager.java:88)
at org.apache.dubbo.rpc.model.ApplicationModel.getApplicationConfig(ApplicationModel.java:100)
at org.apache.dubbo.rpc.model.ApplicationModel.getName(ApplicationModel.java:104)
at org.apache.dubbo.rpc.model.ApplicationModel.getApplication(ApplicationModel.java:112)
at org.apache.dubbo.registry.integration.RegistryProtocol.destroy(RegistryProtocol.java:500)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper.destroy(ProtocolFilterWrapper.java:166)
at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.destroy(ProtocolListenerWrapper.java:80)
at org.apache.dubbo.config.DubboShutdownHook.destroyProtocols(DubboShutdownHook.java:138)
at org.apache.dubbo.config.DubboShutdownHook.destroyAll(DubboShutdownHook.java:121)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.destroy(DubboBootstrap.java:1037)
at org.apache.dubbo.config.bootstrap.DubboBootstrap.stop(DubboBootstrap.java:817)
at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onContextClosedEvent(DubboBootstrapApplicationListener.java:63)
at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onApplicationContextEvent(DubboBootstrapApplicationListener.java:54)
at org.apache.dubbo.config.spring.context.OneTimeExecutionApplicationContextEventListener.onApplicationEvent(OneTimeExecutionApplicationContextEventListener.java:40)
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:393)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:991)
at org.springframework.context.support.AbstractApplicationContext$2.run(AbstractApplicationContext.java:929)
[03/03/20 11:50:06:453 CST] DubboShutdownHook INFO listener.LoggingEventListener: [DUBBO] Dubbo Service has been destroyed., dubbo version: , current host: 192.168.124.10
```
pr中确实能保证只被执行一次,但是销毁过程中,两个线程操作顺序不能保证,其中一个会把``org.apache.dubbo.config.context.ConfigManager#configsCache``数据删除,另一个线程在销毁``org.apache.dubbo.registry.integration.RegistryProtocol#destroy``会报以上的错
[ Full content available at: https://github.com/apache/dubbo/issues/5813 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org