mirror of
https://github.com/s3fs-fuse/s3fs-fuse.git
synced 2024-06-01 16:40:52 +00:00
Abort after failed MPU (#2298)
This reclaims storage after a failed MPU which caused OutOfMemory issues in #2291.
This commit is contained in:
parent
a2f2f72aaf
commit
e8cb6d6d34
|
@ -1368,11 +1368,17 @@ int FdEntity::NoCacheCompleteMultipartPost(PseudoFdInfo* pseudo_obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
S3fsCurl s3fscurl(true);
|
S3fsCurl s3fscurl(true);
|
||||||
int result;
|
int result = s3fscurl.CompleteMultipartPostRequest(path.c_str(), upload_id, etaglist);
|
||||||
if(0 != (result = s3fscurl.CompleteMultipartPostRequest(path.c_str(), upload_id, etaglist))){
|
s3fscurl.DestroyCurlHandle();
|
||||||
|
if(0 != result){
|
||||||
|
S3fsCurl s3fscurl_abort(true);
|
||||||
|
int result2 = s3fscurl.AbortMultipartUpload(path.c_str(), upload_id);
|
||||||
|
s3fscurl_abort.DestroyCurlHandle();
|
||||||
|
if(0 != result2){
|
||||||
|
S3FS_PRN_ERR("failed to abort multipart upload by errno(%d)", result2);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
s3fscurl.DestroyCurlHandle();
|
|
||||||
|
|
||||||
// clear multipart upload info
|
// clear multipart upload info
|
||||||
untreated_list.ClearAll();
|
untreated_list.ClearAll();
|
||||||
|
@ -1914,13 +1920,21 @@ int FdEntity::RowFlushStreamMultipart(PseudoFdInfo* pseudo_obj, const char* tpat
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}else{
|
}else{
|
||||||
S3fsCurl s3fscurl(true);
|
S3fsCurl s3fscurl(true);
|
||||||
if(0 != (result = s3fscurl.CompleteMultipartPostRequest(path.c_str(), upload_id, etaglist))){
|
result = s3fscurl.CompleteMultipartPostRequest(path.c_str(), upload_id, etaglist);
|
||||||
|
s3fscurl.DestroyCurlHandle();
|
||||||
|
if(0 != result){
|
||||||
S3FS_PRN_ERR("failed to complete multipart upload by errno(%d)", result);
|
S3FS_PRN_ERR("failed to complete multipart upload by errno(%d)", result);
|
||||||
untreated_list.ClearAll();
|
untreated_list.ClearAll();
|
||||||
pseudo_obj->ClearUploadInfo(); // clear multipart upload info
|
pseudo_obj->ClearUploadInfo(); // clear multipart upload info
|
||||||
|
|
||||||
|
S3fsCurl s3fscurl_abort(true);
|
||||||
|
int result2 = s3fscurl.AbortMultipartUpload(path.c_str(), upload_id);
|
||||||
|
s3fscurl_abort.DestroyCurlHandle();
|
||||||
|
if(0 != result2){
|
||||||
|
S3FS_PRN_ERR("failed to abort multipart upload by errno(%d)", result2);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
s3fscurl.DestroyCurlHandle();
|
|
||||||
}
|
}
|
||||||
untreated_list.ClearAll();
|
untreated_list.ClearAll();
|
||||||
pseudo_obj->ClearUploadInfo(); // clear multipart upload info
|
pseudo_obj->ClearUploadInfo(); // clear multipart upload info
|
||||||
|
|
Loading…
Reference in New Issue
Block a user