Closed lvjing2 closed 1 month ago
@lvjing2 看了一下是因为BizUninstallEventHandler 执行了shutdownContext,这边要执行shutdownContext的原因是什么?
@CrazyHZM BizUninstallEventHandler 是触发模块 application Context真正执行 close 操作的地方,模块卸载的真正操作就在这里面完成的
sofaboot 4的基座 + sofaboot 4的模块,就会发生这个问题
SOFAArk 模块卸载时是否能只触发 BeforeBizStopEvent,不要主动调用 applicationContext.close() 方法呢,在 com.alipay.sofa.runtime.spi.component.SofaRuntimeManager#shutDownExternally 的后续逻辑中会执行 applicationContext.close()
@lvjing2 context的生命周期可以交给sofaboot管理,ark可以不关心context是什么阶段销毁的。看看主动执行shutdownContext是有什么特殊场景吗
sofaark 面向sofaboot 和 springboot等多种框架,如果这样,其他框架的模块就没有自动关闭的能力
sofaark 面向sofaboot 和 springboot等多种框架,如果这样,其他框架的模块就没有自动关闭的能力
同意,sofaboot这边需要再destroy的时候加强一下生命周期的管理,能够支持application context close时销毁相关对象。
Describe the bug
模块卸载时,会执行两个步骤:
com.alipay.sofa.boot.ark.handler.SofaBizUninstallEventHandler
,会执行清理操作,但是由于 SOFARuntime 已经在第一步里被删除了,所以这一步的清理实际上没有完成,而直接报错。To Reproduce
Steps to reproduce the behavior:
Expected behavior
无报错,正常卸载模块
Environment:
uname -a
): mac