Repository navigation
fix: 修复 DAG 对照基准固定依赖的丢失唤醒 - #526
Merged
Merged
Conversation
11 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
关联 Issue
Closes #523;见全仓发版前体检 #521。
改了什么
将独立
benchmarks/dag模块的 Azure/go-workflow 从v0.1.13固定到官方修复提交7eff231079d7691d749787a8874514968acd15c7对应的v0.1.14-0.20260504053439-7eff231079d7。旧版本工作 goroutine 先通知完成、后归还并发额度;调度循环可能在额度尚未归还时被唤醒,重新等待后又得不到归还额度的通知,挂在
Workflow.Do的Cond.Wait。此 PR 选择精确的官方最小修复提交,不升级到后续 API 重构。双语复跑说明区分当前代码与历史样本:旧报告仍保留
v0.1.13和原始超时,复现历史须检出对应提交;当前依赖产生的样本必须另存,不覆盖或混算历史。新增
TestAzureConcurrencyProgress在独立测试进程中用 4 个线程、业务额度 1、三节点链连续执行 4096 次(每次 verify 两轮复用)。子进程 15 秒测试超时,父进程 20 秒回收上限;旧依赖不响应 ctx 的死锁不会无限挂住整套 CI。影响范围
仅影响 DAG 对照模块的固定依赖、正确性回归及双语复跑说明。Pulse 根
go.mod/go.sum、适配器、原生MaxConcurrency、计时边界及历史报告均不变。正确性探针不能证明生产吞吐改善;此死锁也不能解释所有历史 timeout。此次没有新增性能结果或 Durable 进程恢复验收结论。
测试
Go 1.26.10、Windows amd64;
GOWORK=off GOTOOLCHAIN=local。-modfile选择旧v0.1.13后,15 秒失败,栈确认停在 AzureWorkflow.Do的sync.Cond.Wait;新版本该回归通过。go test -mod=readonly -race -count=100 -timeout=90s -run '^TestCorrectness$/^azure$/^chain$/^N100$/^R1$/^P4$' .通过,28.420s。go test -mod=readonly -race -count=1 -timeout=180s ./...通过,7.118s;go vet -mod=readonly ./...和go mod verify通过。go build -mod=readonly ./...、go vet -mod=readonly ./...、完整 race 均通过,race 7.952s。分支 worktree 本地 Go VCS 状态识别异常仅在该处使用-buildvcs=false,最终 clone 未使用此选项。git diff --check通过。审查关注点
上游提交必须精确对应已确认丢失唤醒修复,不能通过绕开原生额度或跳过 Azure 变绿;回归子进程有界且检查真实输出;当前版本与历史报告身份保持清楚。
自审