Commit f35d966
committed
Settle the era lock exactly once and unify the modern-entry boundaries
The dual-era loop's lock-on-success rule approximated "client-visible
success" with "the handler returned", leaving windows where a request the
client saw fail still moved the era: a pipelined envelope-bearing request
completing after an inline initialize overwrote the committed legacy lock
(stranding the freshly-handshaked client), and a peer cancel landing
during the handler's shielded teardown locked the era while the client
received "Request cancelled". Era commits now run through a single
era_settles predicate: monotone (the first success wins, a straggler from
the other era can never move a committed lock) and skipped when a pending
cancel is about to replace the response.
Two modern-path divergences between the stream loop and the HTTP entry
close by sharing one pipeline: Connection.from_envelope takes the
classifier's raw envelope values and owns the tolerant coercion (custom
methods now degrade mis-shaped clientInfo identically everywhere), and a
shared modern_error_data boundary maps unmapped handler exceptions to a
generic INTERNAL_ERROR instead of the legacy code-0 catch-all putting
str(e) on the wire.
The classifier's non-string protocol-version guard moves below the header
rung, so the HTTP wire is untouched whenever the version header is
present, while the guard still backstops the header-absent null-version
corner that previously escaped as a ValidationError.1 parent 6a2ee51 commit f35d966
6 files changed
Lines changed: 307 additions & 74 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | 33 | | |
35 | 34 | | |
36 | 35 | | |
37 | | - | |
38 | 36 | | |
39 | | - | |
40 | 37 | | |
41 | 38 | | |
42 | 39 | | |
| |||
45 | 42 | | |
46 | 43 | | |
47 | 44 | | |
48 | | - | |
| 45 | + | |
49 | 46 | | |
50 | 47 | | |
51 | 48 | | |
52 | 49 | | |
53 | 50 | | |
54 | | - | |
| 51 | + | |
55 | 52 | | |
56 | 53 | | |
57 | 54 | | |
| |||
65 | 62 | | |
66 | 63 | | |
67 | 64 | | |
68 | | - | |
| 65 | + | |
69 | 66 | | |
70 | 67 | | |
71 | 68 | | |
| |||
74 | 71 | | |
75 | 72 | | |
76 | 73 | | |
77 | | - | |
78 | 74 | | |
79 | 75 | | |
80 | 76 | | |
| |||
125 | 121 | | |
126 | 122 | | |
127 | 123 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | 124 | | |
142 | 125 | | |
143 | 126 | | |
144 | 127 | | |
145 | 128 | | |
146 | 129 | | |
147 | | - | |
148 | | - | |
149 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
150 | 133 | | |
151 | 134 | | |
152 | 135 | | |
153 | 136 | | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
| 137 | + | |
159 | 138 | | |
160 | 139 | | |
161 | 140 | | |
| |||
251 | 230 | | |
252 | 231 | | |
253 | 232 | | |
254 | | - | |
255 | | - | |
256 | 233 | | |
257 | 234 | | |
258 | 235 | | |
259 | 236 | | |
260 | 237 | | |
261 | 238 | | |
262 | 239 | | |
263 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
264 | 243 | | |
265 | 244 | | |
266 | 245 | | |
| |||
409 | 388 | | |
410 | 389 | | |
411 | 390 | | |
412 | | - | |
413 | | - | |
| 391 | + | |
| 392 | + | |
414 | 393 | | |
415 | 394 | | |
416 | 395 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
71 | 88 | | |
72 | 89 | | |
73 | 90 | | |
| |||
172 | 189 | | |
173 | 190 | | |
174 | 191 | | |
175 | | - | |
176 | | - | |
| 192 | + | |
| 193 | + | |
177 | 194 | | |
178 | 195 | | |
179 | 196 | | |
180 | 197 | | |
181 | 198 | | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
188 | 211 | | |
| 212 | + | |
| 213 | + | |
189 | 214 | | |
190 | | - | |
| 215 | + | |
191 | 216 | | |
192 | 217 | | |
193 | | - | |
194 | | - | |
| 218 | + | |
| 219 | + | |
195 | 220 | | |
196 | 221 | | |
197 | 222 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| |||
468 | 468 | | |
469 | 469 | | |
470 | 470 | | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
471 | 488 | | |
472 | 489 | | |
473 | 490 | | |
| |||
562 | 579 | | |
563 | 580 | | |
564 | 581 | | |
565 | | - | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
566 | 587 | | |
567 | 588 | | |
568 | 589 | | |
| |||
579 | 600 | | |
580 | 601 | | |
581 | 602 | | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
582 | 612 | | |
583 | 613 | | |
584 | 614 | | |
| |||
599 | 629 | | |
600 | 630 | | |
601 | 631 | | |
602 | | - | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
614 | 651 | | |
615 | 652 | | |
616 | 653 | | |
| |||
643 | 680 | | |
644 | 681 | | |
645 | 682 | | |
646 | | - | |
| 683 | + | |
647 | 684 | | |
648 | 685 | | |
649 | 686 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
377 | 377 | | |
378 | 378 | | |
379 | 379 | | |
380 | | - | |
381 | | - | |
| 380 | + | |
| 381 | + | |
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
386 | 386 | | |
387 | 387 | | |
388 | | - | |
389 | | - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
390 | 393 | | |
391 | 394 | | |
392 | 395 | | |
| |||
411 | 414 | | |
412 | 415 | | |
413 | 416 | | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | 417 | | |
424 | 418 | | |
425 | 419 | | |
| |||
442 | 436 | | |
443 | 437 | | |
444 | 438 | | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
445 | 451 | | |
446 | 452 | | |
447 | 453 | | |
| |||
0 commit comments