flake: TestTasksCreate (multiple variants)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/100
Hướng nghiên cứu
Bắt đầu trong coderd/aitasks_test.go tại TestTasksCreate, đặc biệt là phần setup và các lệnh gọi CreateTask quanh các dòng 1719-2130. Chạy go test ./coderd -run '^TestTasksCreate$' -count=100, lý tưởng là trên Windows hoặc với contention được thêm vào, và xác minh rằng tất cả các biến thể đều hoàn tất mà không có lỗi context deadline trong khi các assertion hiện có của chúng vẫn pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
CI failure
- CI run: https://github.com/coder/coder/actions/runs/30976975074
- Failing job: https://github.com/coder/coder/actions/runs/30976975074/job/92212913393 (
test-go-pg (windows-2022)) - Failure date: 2026-08-05 05:15 UTC; job completed at 05:21 UTC, before the 05:29 Slack alert
- Run attempt: 1
- Commit:
7a4ae2649eb592b961c142caf43dbe064a15a308 - Commit author: Jake Howell
The complete 4,462-line Windows job log was available and reviewed. The macOS matrix job was canceled only after this Windows job failed; this is not a matrix-cancellation artifact.
Failure evidence
Seven TestTasksCreate variants failed at the same API call with the same expired request context:
=== FAIL: coderd TestTasksCreate/TaskTableCreatedAndLinked (17.07s)
aitasks_test.go:1968:
Post "http://127.0.0.1:52750/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/OK (17.13s)
aitasks_test.go:1751:
Post "http://127.0.0.1:52230/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/MultipleTasksForSameUser (17.08s)
aitasks_test.go:2060:
Post "http://127.0.0.1:52756/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/FailsOnInvalidTemplate (17.07s)
aitasks_test.go:1936:
expected: *codersdk.Error
in chain: Post "http://127.0.0.1:52831/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/TaskWithCustomName (17.08s)
aitasks_test.go:2026:
Post "http://127.0.0.1:52697/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/TaskLinkedToCorrectTemplateVersion (17.13s)
aitasks_test.go:2122:
Post "http://127.0.0.1:52747/api/v2/tasks/me": context deadline exceeded
=== FAIL: coderd TestTasksCreate/FailsOnNonTaskTemplate (17.26s)
aitasks_test.go:1906:
expected: *codersdk.Error
in chain: Post "http://127.0.0.1:52830/api/v2/tasks/me": context deadline exceeded
All template-version build jobs completed successfully immediately before the failing CreateTask requests. This is one synchronized test-family timeout, not seven independent product failures.
Root cause assessment
Classification: flaky test / timing-dependent deadline exhaustion on Windows.
Each failing subtest creates a 10-second context at the beginning of the test body:
ctx := testutil.Context(t, testutil.WaitShort) // WaitShort = 10s
It then performs expensive setup with that deadline already ticking:
- starts an in-process coderd and provisioner daemon;
- creates/logs in the first user;
- uploads a template version;
- waits for the provisioner import job;
- creates a template;
- only then calls
client.CreateTask(ctx, ...).
Under full-suite Windows load, setup consumed essentially the entire 10-second budget. The seven parallel variants consequently reached POST /api/v2/tasks/me with expired or nearly expired contexts and failed together after roughly 17.1 seconds of reported subtest time. Server logs show setup and template imports succeeding; there is no database outage or product panic.
A deterministic fix is to create a fresh request context immediately before CreateTask (and fresh contexts for later assertions), or use WaitLong for end-to-end variants whose setup is intentionally included in the deadline. The context should not be started before server/template setup.
Race, panic, OOM, and resource checks
The full job log contains no WARNING: DATA RACE, race detected during execution of test, panic/runtime-error trace, OOM, killed process, allocation failure, disk exhaustion, or file-descriptor exhaustion indicator. This was a normal assertion failure, not a process crash.
Assignment analysis
Ownership/history targets:
git blame -L 1719,2130 coderd/aitasks_test.go
git log --oneline -10 --follow coderd/aitasks_test.go
The most recent non-trivial modifier of TestTasksCreate itself is 30112075 (feat: add display name field for tasks, PR coder/coder#20856) by ssncferreira. That change substantially expanded the CustomNames portion of this exact function and retained the same early WaitShort context pattern. Later file changes either modify separate task tests or unrelated areas.
Assigning ssncferreira based on the failing test-function history, not the author of the CI commit.
Duplicate search
Searched open and closed coder/internal issues, including issues closed in the last 30 days, for:
TestTasksCreate,TasksCreate, and individual failing variants;api/v2/tasks/me+context deadline exceeded;aitasks_test.go, Windows task timeouts, andWaitShort;- database/timing errors, process crashes, panic/OOM/unknown failures, and race signatures.
No issue describes this exact test family and deadline-exhaustion mode.
Related but not duplicate:
- https://github.com/coder/internal/issues/1561 — CLI golden tests with broad slow-CI context deadlines, different package/test and setup path.
- https://github.com/coder/internal/issues/1600 — race-detector fallout involving
TestTasks/UpdateInput, different test and root cause. - https://github.com/coder/internal/issues/1320 — old
TestTasksrace-job report without thisTestTasksCreatesignature.
Reproduction
Most likely on Windows under full-suite parallel load:
go test ./coderd -run '^TestTasksCreate$' -count=100
To amplify locally, add delay or CPU/DB contention before CreateTask; the current context begins before all server and template setup.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 3
- Fork
- 0
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của coder/internal
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
flake
-
flake
-
flake
Tất cả issue của coder/internal
Issue tương tự
-
area:spec bug good first issue ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
low smart-contract Stellar Wave testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Web3Novalabs/Nevo#1376 · 3 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 60/100
github/gh-aw-mcpg#13748 ·