Commit e368316
committed
fix(mothership): hand off a failed replay append again, bounded by the recovery budget
Ending the turn on any leased append error that was not a lost lease turned a
short Redis blip (a failover READONLY or a connection reset that outlasts the
append retries) into a failed Chat turn and a worker stop. Before, that turn was
handed off and a successor completed it.
- A failed append that is not a budget refusal hands off again, as on staging.
The per-run recovery budget bounds a persistent failure: MAX_RECOVERY_ATTEMPTS
takeovers with backoff, and then the run ends as stream_recovery_exhausted.
- Drop StreamPersistenceFailedError and stream_persistence_failed. The writer
only latches budget refusals again, and finalizeAsError surfaces a failed
terminal append as it did before.
- Keep the change that an unreadable lease is not a hand-off. Its test now
fails a lease read alone: a corrupted lock key also fails the fenced append,
which is now a hand-off.
- Storm suite: a single failed append hands off and the next controller
completes the turn. A persistent append failure exhausts the budget, the same
as a lease lost with no successor.1 parent b154dfd commit e368316
6 files changed
Lines changed: 169 additions & 210 deletions
File tree
- apps/sim/lib/mothership/request
- lifecycle
- session
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 65 | + | |
70 | 66 | | |
71 | 67 | | |
72 | 68 | | |
| |||
448 | 444 | | |
449 | 445 | | |
450 | 446 | | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
455 | 452 | | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
462 | 459 | | |
463 | 460 | | |
464 | 461 | | |
| |||
Lines changed: 47 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
| |||
76 | 79 | | |
77 | 80 | | |
78 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
79 | 87 | | |
80 | 88 | | |
81 | 89 | | |
| |||
105 | 113 | | |
106 | 114 | | |
107 | 115 | | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
| 116 | + | |
112 | 117 | | |
113 | 118 | | |
114 | 119 | | |
| |||
331 | 336 | | |
332 | 337 | | |
333 | 338 | | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
334 | 357 | | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
339 | 363 | | |
340 | | - | |
341 | | - | |
| 364 | + | |
| 365 | + | |
342 | 366 | | |
343 | 367 | | |
344 | | - | |
| 368 | + | |
345 | 369 | | |
346 | | - | |
| 370 | + | |
347 | 371 | | |
348 | | - | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
349 | 377 | | |
350 | 378 | | |
351 | 379 | | |
352 | | - | |
| 380 | + | |
| 381 | + | |
353 | 382 | | |
354 | 383 | | |
355 | 384 | | |
356 | 385 | | |
357 | 386 | | |
358 | | - | |
| 387 | + | |
359 | 388 | | |
360 | 389 | | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | 390 | | |
385 | 391 | | |
386 | 392 | | |
| |||
Lines changed: 34 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| |||
72 | 74 | | |
73 | 75 | | |
74 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
75 | 91 | | |
76 | 92 | | |
77 | 93 | | |
| |||
147 | 163 | | |
148 | 164 | | |
149 | 165 | | |
150 | | - | |
151 | 166 | | |
152 | 167 | | |
153 | 168 | | |
| |||
659 | 674 | | |
660 | 675 | | |
661 | 676 | | |
662 | | - | |
| 677 | + | |
663 | 678 | | |
664 | 679 | | |
665 | 680 | | |
| |||
674 | 689 | | |
675 | 690 | | |
676 | 691 | | |
677 | | - | |
678 | | - | |
679 | | - | |
680 | | - | |
681 | | - | |
682 | | - | |
683 | | - | |
| 692 | + | |
| 693 | + | |
684 | 694 | | |
685 | | - | |
686 | | - | |
687 | | - | |
688 | | - | |
| 695 | + | |
| 696 | + | |
689 | 697 | | |
690 | 698 | | |
691 | | - | |
692 | | - | |
693 | | - | |
694 | | - | |
695 | | - | |
696 | | - | |
697 | | - | |
698 | | - | |
699 | | - | |
700 | | - | |
| 699 | + | |
701 | 700 | | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
702 | 708 | | |
703 | 709 | | |
704 | 710 | | |
705 | 711 | | |
706 | | - | |
| 712 | + | |
707 | 713 | | |
708 | 714 | | |
709 | 715 | | |
| |||
1065 | 1071 | | |
1066 | 1072 | | |
1067 | 1073 | | |
1068 | | - | |
| 1074 | + | |
1069 | 1075 | | |
1070 | 1076 | | |
1071 | 1077 | | |
| |||
1074 | 1080 | | |
1075 | 1081 | | |
1076 | 1082 | | |
1077 | | - | |
| 1083 | + | |
1078 | 1084 | | |
| 1085 | + | |
| 1086 | + | |
1079 | 1087 | | |
1080 | 1088 | | |
1081 | 1089 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| |||
15 | 14 | | |
16 | 15 | | |
17 | 16 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | 17 | | |
22 | 18 | | |
23 | 19 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | 20 | | |
42 | 21 | | |
43 | 22 | | |
| |||
0 commit comments