所以可以做一个实验,增加插件 a 和插件 b ,共同读写同一个 sqlite ,b 依赖 a ,a 依赖 sqlite 。
1 、同时加载 a 和 b ,正常,并且 a 给数据库加记录,b 审计正常
2 、关闭 a ,依旧加载 b ,b 被插件系统检测到依赖消失,b 变成 pending 状态
3 、重新开启 a ,a 读数据库发现之前记录(模拟一个冲突的情况),因为冲突,a 报错。此时磁盘上 a 是 enable ,但由于 a 报错,运行时自动回滚上面 2 中 a 被 disable 的状态。