Commit e295c50
fixup: a handle's physical hold is not the frontier it reports
A handle carries two physical frontiers, and they are not interchangeable. The
one it reports through `get_physical_compaction` is seeded at the published
`since`, because a reported frontier may never lead the chain coverage. The one
it holds is seeded at that coverage, because a merge spanning the coverage
destroys the boundary the reader was seeded with.
`Clone` and the setter both wrote the reported frontier into the hold, which
silently lowers it. Since the accumulation is a meet, one such registration is a
floor under every other hold, so the published spine stops merging: batches pile
up in `Spine::pending`, one per seal, for as long as that registration lives.
The cost is unbounded rather than constant, since retractions in stranded
batches never consolidate and every `cursor_through` builds a `CursorList` over
all of them.
An import's read hold hit this on both counts. It is a clone, so it registered
at `since`, and it advanced only on the logical axis, so nothing ever raised it.
Measured against an unimported control over 40 seals: 39 batches against 5.
Keep the two frontiers in separate fields, have `Clone` inherit the hold, have
the setter join into both, and advance the import's hold on both axes.
`acknowledged` is the right value for the physical axis too: it is exactly the
frontier below which that import will never cut again.
Reported by the QA LLM review on #38386.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 6d01cc0 commit e295c50
2 files changed
Lines changed: 202 additions & 9 deletions
File tree
- src/compute/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
373 | 373 | | |
374 | 374 | | |
375 | 375 | | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
376 | 386 | | |
377 | 387 | | |
378 | 388 | | |
| |||
453 | 463 | | |
454 | 464 | | |
455 | 465 | | |
456 | | - | |
| 466 | + | |
457 | 467 | | |
458 | 468 | | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
459 | 481 | | |
460 | 482 | | |
461 | 483 | | |
| |||
464 | 486 | | |
465 | 487 | | |
466 | 488 | | |
467 | | - | |
| 489 | + | |
468 | 490 | | |
469 | 491 | | |
470 | 492 | | |
| |||
473 | 495 | | |
474 | 496 | | |
475 | 497 | | |
476 | | - | |
| 498 | + | |
477 | 499 | | |
478 | 500 | | |
479 | 501 | | |
480 | 502 | | |
481 | 503 | | |
482 | 504 | | |
| 505 | + | |
483 | 506 | | |
484 | 507 | | |
485 | 508 | | |
| |||
489 | 512 | | |
490 | 513 | | |
491 | 514 | | |
492 | | - | |
| 515 | + | |
493 | 516 | | |
494 | 517 | | |
495 | 518 | | |
| |||
516 | 539 | | |
517 | 540 | | |
518 | 541 | | |
519 | | - | |
| 542 | + | |
520 | 543 | | |
521 | 544 | | |
522 | 545 | | |
| |||
535 | 558 | | |
536 | 559 | | |
537 | 560 | | |
| 561 | + | |
538 | 562 | | |
539 | 563 | | |
540 | 564 | | |
| |||
601 | 625 | | |
602 | 626 | | |
603 | 627 | | |
604 | | - | |
| 628 | + | |
605 | 629 | | |
606 | 630 | | |
607 | | - | |
| 631 | + | |
608 | 632 | | |
609 | 633 | | |
610 | 634 | | |
| |||
622 | 646 | | |
623 | 647 | | |
624 | 648 | | |
625 | | - | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
626 | 654 | | |
627 | 655 | | |
628 | 656 | | |
629 | 657 | | |
630 | 658 | | |
631 | 659 | | |
632 | 660 | | |
| 661 | + | |
633 | 662 | | |
634 | 663 | | |
635 | 664 | | |
| |||
705 | 734 | | |
706 | 735 | | |
707 | 736 | | |
708 | | - | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
709 | 743 | | |
710 | 744 | | |
711 | 745 | | |
| |||
1165 | 1199 | | |
1166 | 1200 | | |
1167 | 1201 | | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1168 | 1208 | | |
1169 | 1209 | | |
1170 | 1210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
877 | 877 | | |
878 | 878 | | |
879 | 879 | | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
880 | 1033 | | |
881 | 1034 | | |
882 | 1035 | | |
| |||
0 commit comments