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;
}