Repository navigation
fix: Deflake DaprJobsIT and let CI integration retries finish - #1827
Conversation
DaprJobsIT compared the expected due time, always formatted with milliseconds, against Instant.toString(), which drops them when they are zero. The tests now compare Instants truncated to milliseconds. The build job timeout equalled one integration attempt, so the retry was cancelled before it could finish. Raise the job timeouts to fit both attempts. Signed-off-by: Javier Aliaga <javier@diagrid.io>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The changes correctly address timestamp formatting flakes and permit configured retries to finish.
Review effort: Balanced
Findings: None
What changed in this PR
Deflakes jobs integration tests and allows CI retries enough time to complete.
Changes:
- Compares job timestamps as millisecond-precision
Instantvalues. - Extends Build and Dapr-head job timeouts.
| File | Description |
|---|---|
spring-boot-sdk-tests/.../DaprJobsIT.java |
Uses precision-safe timestamp assertions. |
sdk-tests/.../DaprJobsIT.java |
Uses precision-safe timestamp assertions. |
.github/workflows/build.yml |
Increases CI job timeout limits. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
@javier-aliaga I think each retry gets 20 mins. |
@siri-varma we have 2 different timeouts at job level and on the retry, the job level one is the one I am modifying and it is not aware of attemtps, it must be the total of time. For example https://github.com/dapr/java-sdk/actions/runs/35599938362/job/106333386556 |
The Durable Task job allowed 7 minutes while its retry step allows two 5-minute attempts, so a second attempt had about a minute and a half. Raise the job timeout to 15 minutes and note on each retried job that the job timeout covers every attempt. Signed-off-by: Javier Aliaga <javier@diagrid.io>
There was a problem hiding this comment.
🟢 Approval recommended
The timestamp precision and workflow timeout changes are consistent with the underlying serialization and retry configuration.
0 open findings
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1827 +/- ##
============================================
+ Coverage 79.26% 79.66% +0.39%
- Complexity 2615 2683 +68
============================================
Files 264 267 +3
Lines 7785 7923 +138
Branches 820 839 +19
============================================
+ Hits 6171 6312 +141
+ Misses 1254 1252 -2
+ Partials 360 359 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Description
Two fixes for the recent Build job failures, found by checking every Build job since 2026-09-16, including reruns.
DaprJobsIT time comparison. The tests formatted the expected due time with a fixed
.SSSpattern and compared it withInstant.toString(), which drops the fraction when the milliseconds are zero. The test then failed withexpected: <2026-09-30T09:25:00.000Z> but was: <2026-09-30T09:25:00Z>. This was seen on master and on a PR branch. The tests now compare theInstantvalues, truncated to milliseconds. Both copies are fixed, insdk-testsandspring-boot-sdk-tests.Job timeouts. One integration attempt takes 20 to 22 minutes. The Build job timeout was 25 minutes, so the
nick-fields/retrysecond attempt was always cancelled, and a flaky test showed up as a cancelled job. The Build job timeout is now 60 minutes, which fits two 25-minute attempts plus the install step. The dapr-head job timeout is now 50 minutes, which fits two 20-minute attempts.The other frequent failure,
OrchestratorAppIT, came from a daprd 1.18.0 read error (inbox key ... declared in metadata but missing from state store). dapr fixed it in 1.18.3, and master picked up the fix with the move to1.19.0-rc.1in #1820, so this PR does not change it.Test plan
DaprJobsITsuites pass locally under JDK 17 (6/6 each)