|
53 | 53 | uploaded_fragments = [] :: [#fragment_info{}], |
54 | 54 | %% The next offset that should be uploaded. |
55 | 55 | %% All offsets under this have been tiered without any "holes" in the |
56 | | - %% remote log. |
57 | | - next_tiered_offset :: osiris:offset() | undefined |
| 56 | + %% remote log. TODO: is zero the correct default here? What if the entire |
| 57 | + %% local log is truncated away? |
| 58 | + next_tiered_offset = 0 :: osiris:offset() |
58 | 59 | }). |
59 | 60 |
|
60 | 61 | -record(manifest_writer, { |
@@ -570,6 +571,9 @@ handle_cast( |
570 | 571 | %% linear time. |
571 | 572 | Uploaded1 = sort_infos([Info | Uploaded0]), |
572 | 573 | {NTO, Pending, Finished} = split_uploaded_infos(NTO0, Uploaded1, []), |
| 574 | + ?LOG_DEBUG("~b finished uploads, ~b pending, nto ~p -> ~p", [ |
| 575 | + length(Finished), length(Pending), NTO0, NTO |
| 576 | + ]), |
573 | 577 | #{Dir := {Manifest0, UploadStatus0}} = Manifests0, |
574 | 578 | {Manifest, UploadStatus, Tasks} = apply_infos( |
575 | 579 | Finished, Manifest0, UploadStatus0, Tasks2, Dir |
@@ -700,9 +704,7 @@ split_uploaded_infos( |
700 | 704 | NextTieredOffset, |
701 | 705 | [#fragment_info{offset = FirstOffset, next_offset = NextOffset} = Info | Rest], |
702 | 706 | Acc |
703 | | -) when |
704 | | - NextTieredOffset =:= undefined orelse FirstOffset =:= NextTieredOffset |
705 | | --> |
| 707 | +) when NextTieredOffset =:= FirstOffset -> |
706 | 708 | split_uploaded_infos(NextOffset, Rest, [Info | Acc]); |
707 | 709 | split_uploaded_infos(NextTieredOffset, PendingUploaded, Acc) -> |
708 | 710 | {NextTieredOffset, PendingUploaded, lists:reverse(Acc)}. |
|
0 commit comments