codope commented on code in PR #6266:
URL: https://github.com/apache/hudi/pull/6266#discussion_r938743512
##########
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/MarkerBasedRollbackUtils.java:
##########
@@ -56,10 +56,16 @@ public static List<String> getAllMarkerPaths(HoodieTable
table, HoodieEngineCont
FileSystem fileSystem = table.getMetaClient().getFs();
Option<MarkerType> markerTypeOption =
MarkerUtils.readMarkerType(fileSystem, markerDir);
- // If there is no marker type file "MARKERS.type", we assume "DIRECT"
markers are used
+ // If there is no marker type file "MARKERS.type", first assume "DIRECT"
markers are used.
+ // If not, then fallback to "TIMELINE_SERVER_BASED" markers.
if (!markerTypeOption.isPresent()) {
WriteMarkers writeMarkers = WriteMarkersFactory.get(MarkerType.DIRECT,
table, instant);
- return new ArrayList<>(writeMarkers.allMarkerFilePaths());
+ try {
+ return new ArrayList<>(writeMarkers.allMarkerFilePaths());
+ } catch (Exception e) {
Review Comment:
> shouldn't there be some specific exception for this case to catch?
Yes, the code path could throw IllegalArgumentException or IOException. I
can catch specific exception instead of blanket fallback.
> default is TIMELINE_SERVER_BASED, why not assume TIMELINE_SERVER_BASED
first then fallback?
In case of TIMELINE_SERVER_BASED, the marker type file should be written
ideally. If it's not present then most likely DIRECT marker is being used.
Hence, the most probable scenario first.
> also can you clarify in what cases we may have marker type not known?
Ofc DIRECT marker is one case. However, in case of TIMELINE_SERVER_BASED
let's say marker dir creation succeeded but marker type file creation failed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]