Commit 67cb93c
Fix: a send timeout was classified as our bug, not the network's
Review caught a real defect, and it reintroduced the exact thing #825 added a
test for.
The timeout borrowed `TelemetryError::Serialize` for want of a better variant.
`classify` treats anything that is not the client's own error as a refusal — sound
for a payload that never left the process, wrong for a timeout, which *did* reach
the network and simply got no verdict. So a slow request filed a false fault and
**spent the one refusal report a run is allowed**, swallowing any genuine refusal
later in the same run.
The per-variant tests passed throughout, because the variant they exercised was
not the one the timeout used. That is the more useful lesson than the bug: the
coverage was per-error-value, and the defect was in which value got chosen.
- A `SendTimeout` variant of its own, since classification follows from the
variant.
- `classify` is now exhaustive over our own errors as well as the client's, so a
new one cannot inherit an answer by falling through — which is precisely how
this happened.
- The existing refusal-report test now runs both kinds of not-reaching-the-API,
so the property is pinned against the shape that broke it rather than only the
shape I thought of first.
just lint 0, cargo fmt --check 0, 322 quilt-sync tests.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent e100d5c commit 67cb93c
3 files changed
Lines changed: 67 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
53 | 63 | | |
54 | 64 | | |
55 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
359 | 363 | | |
360 | 364 | | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
367 | 376 | | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
373 | 384 | | |
374 | 385 | | |
375 | 386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
125 | | - | |
126 | | - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
130 | 142 | | |
131 | 143 | | |
132 | 144 | | |
| |||
306 | 318 | | |
307 | 319 | | |
308 | 320 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
| 321 | + | |
315 | 322 | | |
316 | 323 | | |
317 | 324 | | |
| |||
699 | 706 | | |
700 | 707 | | |
701 | 708 | | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
702 | 728 | | |
703 | 729 | | |
704 | 730 | | |
| |||
0 commit comments