Gabriel39 commented on code in PR #66348:
URL: https://github.com/apache/doris/pull/66348#discussion_r3712697955
##########
fe/fe-filesystem/fe-filesystem-azure/src/main/java/org/apache/doris/filesystem/azure/AzureObjStorage.java:
##########
@@ -244,15 +276,37 @@ public void completeMultipartUpload(String remotePath,
String uploadId,
List<UploadPartResult> parts) throws IOException {
try {
AzureUri uri = AzureUri.parse(remotePath);
- BlockBlobClient blockBlobClient =
getClient().getBlobContainerClient(uri.container())
- .getBlobClient(uri.key()).getBlockBlobClient();
+ BlobContainerClient containerClient =
getClient().getBlobContainerClient(uri.container());
List<String> blockIds = new ArrayList<>();
List<UploadPartResult> sorted = new ArrayList<>(parts);
sorted.sort((a, b) -> Integer.compare(a.partNumber(),
b.partNumber()));
+ boolean exactBlockIds = !sorted.isEmpty() && sorted.stream()
+ .allMatch(part -> part.etag() != null &&
!part.etag().isEmpty());
for (UploadPartResult part : sorted) {
- blockIds.add(toBlockId(part.partNumber()));
+ // Missing IDs identify an older BE upload, whose blocks use
the legacy namespace.
Review Comment:
Addressed by the current branch. BE calls
hive_multipart_protocol_supported() before opening the Hive writer and rejects
Azure file production when the coordinator has not advertised deferred-Azure
support. FE also validates exactly one complete pending-upload record per
reported object-store file before publishing metadata. The tests cover a real
base-BE-shaped update with no pending list, preservation of pending tokens
during mixed-update merging, and Azure publication/lease behavior; the Azure
extension suite passed 26/26.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]