发布日期: 2025-05-16
版本号: v1.15.5

Dapr 1.15.5版本包含一项关键更新,即修复了工作流执行死锁问题。该问题在工作流长时间运行后可能导致执行过程卡住,进而使工作流无法继续运行。其根本原因在于调度器中的工作流队列实现在极少数情况下会发生死锁。通过更新队列实现,现在采用了控制循环模式以避免死锁,同时这项更新还意外地使工作流和任务在高吞吐量场景下的性能提升了约3倍。

更新内容 (中文)

Dapr 1.15.5

此更新包含错误修复:

修复工作流执行死锁

问题

长时间运行足够数量的工作流后,执行会卡住。

影响

工作流无法继续执行。

根本原因

调度器(diagridio/go-etcd-cron)中工作流队列的实现在极少数情况下会发生死锁。

解决方案

go-etcd-cron 队列实现已更新为使用控制循环范式以避免死锁。此更改的附带效果是工作流(以及通常的作业)在高吞吐量场景下性能将提升约3倍。

更新内容 (原始)

Dapr 1.15.5

This update includes bug fixes:

Fix Workflow execution deadlock

Problem

After running a number of workflows for a long enough time, execution would become stuck.

Impact

Workflows could no longer be executed.

Root cause

The implementation of the Workflow queue in Scheduler (diagridio/go-etcd-cron) would occur a deadlock in very rare circumstances.

Solution

The go-etcd-cron queue implementation has been updated to use a control loop paradigm to avoid deadlocks. A side effect of this change will see Workflow (and Job generally) see a ~3x improvement in performance in high throughput scenarios.

下载链接