Commit 0c60982
committed
fix(stovepipe): stop wrapping the buildsignal re-poll publish as retryable
## Summary
### Why?
`buildsignal` wrapped a failed reschedule publish in `errs.NewRetryableError`. `platform/errs` rule 4 says not to do that: a failed queue publish must not be made retryable just because replaying it is convenient, because that turns a permanent enqueue failure into an infinite retry instead of dead-lettering. It was also inconsistent with the sibling path — the publish to `record`, one branch above, already returns raw.
### What?
Returns the raw error, leaving the classifier's verdict to stand, and drops the now-unused `errs` dependency.
### Merge ordering
**This should merge only after the build and buildsignal stages have DLQ consumers.** Today only `stovepipe-process-dlq` is registered, and `MoveToDLQ` routes by topic-suffix convention, so anything dead-lettered from `buildsignal` lands on `buildsignal_dlq` and is never drained — leaving the request non-terminal with its build slot held, which is the wedge the reconciler exists to prevent.
This change does not create that hole; every other non-retryable failure in the stage already falls into it. But it does add one more path in, so the ordering is worth respecting rather than discovering later. If the DLQ work slips, the alternative is to land this anyway and accept parity with the existing failure modes.
## Test Plan
✅ `bazel test //stovepipe/...` — the reschedule-publish-failure case now asserts a non-retryable classification.
✅ `bazel test //test/e2e/stovepipe/...` — the poll loop is unaffected on the success path.
# Conflicts:
# stovepipe/controller/buildsignal/buildsignal.go
# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# interactive rebase in progress; onto 4199281
# Last command done (1 command done):
# pick 356f028d fix(stovepipe): stop wrapping the buildsignal re-poll publish as retryable
# No commands remaining.
# You are currently rebasing branch 'preetam/stovepipe-publish-classification' on '41992811'.
#
# Changes to be committed:
# modified: doc/rfc/stovepipe/steps/buildsignal.md
# modified: stovepipe/controller/buildsignal/BUILD.bazel
# modified: stovepipe/controller/buildsignal/buildsignal.go
# modified: stovepipe/controller/buildsignal/buildsignal_test.go
#1 parent 357f764 commit 0c60982
4 files changed
Lines changed: 5 additions & 7 deletions
File tree
- doc/rfc/stovepipe/steps
- stovepipe/controller/buildsignal
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
| |||
126 | 127 | | |
127 | 128 | | |
128 | 129 | | |
129 | | - | |
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | | - | |
| 133 | + | |
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | 33 | | |
35 | 34 | | |
36 | 35 | | |
| |||
171 | 170 | | |
172 | 171 | | |
173 | 172 | | |
174 | | - | |
| 173 | + | |
175 | 174 | | |
176 | 175 | | |
177 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
370 | | - | |
| 370 | + | |
371 | 371 | | |
372 | | - | |
| 372 | + | |
373 | 373 | | |
374 | 374 | | |
375 | 375 | | |
| |||
0 commit comments