From a5ca57ad9d064f88bf18a8dee7ecf96da071458c Mon Sep 17 00:00:00 2001 From: hushengquan <1390305506@qq.com> Date: Mon, 1 Dec 2025 22:18:42 +0800 Subject: [PATCH] fix: head object when complete mpu happen 5xx --- pom.xml | 2 +- .../java/org/apache/hadoop/fs/CosNativeFileSystemStore.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 25753026..f88e12cd 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.qcloud.cos hadoop-cos - 8.3.27 + 8.3.28 jar Apache Hadoop Tencent Cloud COS Support diff --git a/src/main/java/org/apache/hadoop/fs/CosNativeFileSystemStore.java b/src/main/java/org/apache/hadoop/fs/CosNativeFileSystemStore.java index 473af6fb..953c3c45 100644 --- a/src/main/java/org/apache/hadoop/fs/CosNativeFileSystemStore.java +++ b/src/main/java/org/apache/hadoop/fs/CosNativeFileSystemStore.java @@ -2045,7 +2045,7 @@ private Object innerCallWithRetry(X request) throws CosServiceException, IOE // mpu might occur 503 access time out but already completed, // if direct retry may occur 403 not found the upload id. - if (request instanceof CompleteMultipartUploadRequest && statusCode == 503) { + if (request instanceof CompleteMultipartUploadRequest && isServiceError(statusCode)) { String key = ((CompleteMultipartUploadRequest) request).getKey(); FileMetadata fileMetadata = this.queryObjectMetadata(key); if (null != fileMetadata) { @@ -2116,6 +2116,10 @@ private boolean hasErrorCode(int statusCode, String errCode) { return statusCode / 100 == 2 && errCode != null && !errCode.isEmpty(); } + private boolean isServiceError(int statusCode) { + return statusCode / 100 == 5; + } + public COSClient getCOSClient() { return this.cosClient; }