Commit 389e709
committed
fix(webapp): stop concurrent batch subscribers sharing a realtime working set
Batch feeds derived their stream handle from the batchId, so two
subscribers to the same batch on one instance shared a working-set
cache entry and one could permanently suppress the other's deltas,
including terminal status updates. Handles are now minted per
connection with a collision-proof suffix and working-set entries are
keyed by environment, so a client-echoed handle can never read or
overwrite another connection's state.
Also: mid-run metadata updates carry the batchId so batch feeds
fast-wake instead of waiting for the backstop, and the run-engine
metadata handler publishes after the write lands so hydration sees
the new row.1 parent 3f83f49 commit 389e709
5 files changed
Lines changed: 59 additions & 20 deletions
File tree
- apps/webapp
- app
- routes
- services
- metadata
- realtime
- v3
- test/realtime
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
| 190 | + | |
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
| 311 | + | |
311 | 312 | | |
312 | 313 | | |
313 | 314 | | |
| |||
355 | 356 | | |
356 | 357 | | |
357 | 358 | | |
358 | | - | |
| 359 | + | |
359 | 360 | | |
| 361 | + | |
360 | 362 | | |
361 | 363 | | |
362 | 364 | | |
| |||
Lines changed: 28 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
367 | | - | |
| 367 | + | |
368 | 368 | | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | 369 | | |
374 | 370 | | |
375 | | - | |
| 371 | + | |
376 | 372 | | |
377 | 373 | | |
378 | 374 | | |
| |||
385 | 381 | | |
386 | 382 | | |
387 | 383 | | |
388 | | - | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
389 | 387 | | |
390 | 388 | | |
391 | 389 | | |
392 | | - | |
| 390 | + | |
393 | 391 | | |
394 | 392 | | |
395 | 393 | | |
| |||
519 | 517 | | |
520 | 518 | | |
521 | 519 | | |
522 | | - | |
| 520 | + | |
523 | 521 | | |
524 | 522 | | |
525 | 523 | | |
| |||
556 | 554 | | |
557 | 555 | | |
558 | 556 | | |
559 | | - | |
| 557 | + | |
| 558 | + | |
560 | 559 | | |
561 | 560 | | |
562 | 561 | | |
| |||
614 | 613 | | |
615 | 614 | | |
616 | 615 | | |
617 | | - | |
| 616 | + | |
618 | 617 | | |
619 | 618 | | |
620 | 619 | | |
| |||
636 | 635 | | |
637 | 636 | | |
638 | 637 | | |
639 | | - | |
| 638 | + | |
640 | 639 | | |
641 | 640 | | |
642 | 641 | | |
| |||
881 | 880 | | |
882 | 881 | | |
883 | 882 | | |
884 | | - | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
885 | 900 | | |
886 | 901 | | |
887 | 902 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
571 | 571 | | |
572 | 572 | | |
573 | 573 | | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | 574 | | |
579 | 575 | | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
580 | 579 | | |
581 | 580 | | |
582 | 581 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
130 | 153 | | |
131 | 154 | | |
132 | 155 | | |
| |||
304 | 327 | | |
305 | 328 | | |
306 | 329 | | |
307 | | - | |
| 330 | + | |
308 | 331 | | |
309 | 332 | | |
310 | 333 | | |
| |||
0 commit comments