Commit d56779e
committed
crimson/os/seastore/transaction_manager: consider inconsistency between
backrefs and lbas acceptable when cleaning segments
Consider the following scene:
1. Trans.A writes the final record of Segment S, in which it overwrite
another extent E in the same segment S;
2. Before Trans.A "complete_commit", Trans.B tries to rewrite new
records and roll the segments, which closes Segment S;
3. Before Trans.A "complete_commit", a new cleaner Transaction C tries
to clean the segment;
In this scenario, C might see a part of extent E's laddr space mapped
to another location within the same segment S. This is actually a valid
case.
Fixes: https://tracker.ceph.com/issues/66924
Signed-off-by: Xuehan Xu <[email protected]>1 parent 67afcf6 commit d56779e
1 file changed
+17
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
681 | 681 | | |
682 | 682 | | |
683 | 683 | | |
684 | | - | |
| 684 | + | |
685 | 685 | | |
686 | 686 | | |
687 | 687 | | |
688 | | - | |
689 | | - | |
690 | | - | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
691 | 704 | | |
692 | 705 | | |
693 | 706 | | |
| |||
0 commit comments