nanjiek commented on code in PR #3293:
URL: https://github.com/apache/dubbo-go/pull/3293#discussion_r3159146818


##########
graceful_shutdown/shutdown.go:
##########
@@ -76,26 +88,23 @@ func Init(opts ...Option) {
                        opt(newOpts)
                }
 
+               storeShutdownConfig(newOpts.Shutdown)
+
                // retrieve ShutdownConfig for gracefulShutdownFilter
-               gracefulShutdownConsumerFilter, exist := 
extension.GetFilter(constant.GracefulShutdownConsumerFilterKey)
-               if !exist {
-                       return
-               }
-               gracefulShutdownProviderFilter, exist := 
extension.GetFilter(constant.GracefulShutdownProviderFilterKey)
-               if !exist {
-                       return
-               }
-               if filter, ok := 
gracefulShutdownConsumerFilter.(config.Setter); ok {
-                       
filter.Set(constant.GracefulShutdownFilterShutdownConfig, newOpts.Shutdown)
+               if gracefulShutdownConsumerFilter, exist := 
extension.GetFilter(constant.GracefulShutdownConsumerFilterKey); exist {
+                       if filter, ok := 
gracefulShutdownConsumerFilter.(config.Setter); ok {
+                               
filter.Set(constant.GracefulShutdownFilterShutdownConfig, newOpts.Shutdown)
+                       }
                }
-
-               if filter, ok := 
gracefulShutdownProviderFilter.(config.Setter); ok {
-                       
filter.Set(constant.GracefulShutdownFilterShutdownConfig, newOpts.Shutdown)
+               if gracefulShutdownProviderFilter, exist := 
extension.GetFilter(constant.GracefulShutdownProviderFilterKey); exist {
+                       if filter, ok := 
gracefulShutdownProviderFilter.(config.Setter); ok {
+                               
filter.Set(constant.GracefulShutdownFilterShutdownConfig, newOpts.Shutdown)
+                       }

Review Comment:
   如果 Init 阶段因为 Filter 缺失而没有返回,后续流程依然会启动,但由于没有 Filter 进行 Inc() 和 Dec() 
操作,计数器将永远保持为 0。 当 beforeShutdown 执行到等待步骤时,会因为计数器为 0 
而立即判定为“请求已清空”,从而直接跳过等待时间,强行关闭连接。这完全违背了优雅停机的初衷。   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to