错误: 待关闭锁释放使用 execWf (工作流模板引用的状态为空), 永久泄露等待队列项
· 先决条件
- 我已经检查了我的配置
- [] 当我用`:最近'测试时,我可以确认这些问题的存在。
- [ ]我想贡献 修复自己
发生了什么事?
在 " 等待 " 时结束工作流量,等待工作流量水平**
同步 mutex/ semaphore, 永久泄漏 Workflow 的输入源
当工作流程被提交时, 锁定的记忆中等待队列
工作流程 Template Ref'(即每个现实世界的"来自工作流程Template") (用法). 然后锁被永久地扣住/锁住(锁入状态:N/N',
`"不在前方""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
工作流程控制程序本身已重新启动 。
预期:结束一个尚未启动的工作流程,发布其等待排队 输入与运行的“工作流”的完成路径相同。
生殖/根源
释放Locks ForPending Shutting DownWfs ' (工作流程/控制员/操作员.go')
以 :
开始 如果 woc.controller.syncManager. Release All(ctx, woc.execWf) { 将自动解除所有限制 !
用于“工作流程”的调取“工作流程”,“setExecWorkflow”(同一份文件)的再分配
对一个全新的对象的`woc.execWf':
开始
woc.execWf = &wfv1. Workflow{Spec: *woc.wf.status.StoredWorkflowSpec.DeepCopy()} 互联网档案馆的存檔,存档日期2011-12-21.这个新对象的.现状'是零值,所以执行Wf。 状态 同步”
总是‘没有'。 管理者.释放所有人'(工作流程/同步/同步 管理者.go')首先:
开始 如果有的话。 状态 同步 ===== 返回真实 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
因此,调用返回“ true” (登录为“ ” ) 释放了自此之后的所有锁
工作流程正在关闭中,但从未要求“从队列中撤走”任何
锁定实际已排入的工作流程 。 实际物体`woc.wf'确实携带
人口状况。 同步相会. 穆特克丝。 等待"/"司马pho. 等待条目
(这是由`TryAcquire ' 写成的,正确的名称是:
`woc.wf'以上几行),但该物体从未被传递至`释放 ' 。
在这里。
同一文件中的普通补全路径( “ 释放所有已获取的锁定 ”
)调用正确的对象:
开始
如果woc.controller.syncManager. Release All(ctx, woc.wf) {,请检查date=中的日期值 (帮助)所以工作流 运行和完成 永远不会漏出。 只有待决阶段 路径受到影响,仅用于“工作流程模板” 工作流量(赤/内线) 工作流程有‘执行Wf == wf', 同一个指针,这就是为什么 没有被 #16776/#16777 自己的再现所抓住——两者都使用了内在 工作流谱.
生产 v 4.1.2 组群的活性确认:工作流程级
" 同步.mutexes " 与两个已命名的变种,四个冗余
" 工作流程 " 工作流排队等待, spec. shutdown : 终止 。 所有四个都正确过渡到失败'
"停止了策略'终止'''(第16776号的修复工作为这部分工作),但
下一个工作流排队 在同一突变记录上 不在前面'
与终止的4个项目中的1个匹配的“持有者钥匙”
. . . . . . .
内容来源: argoproj/argo-workflows