You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create upload, send part 1, resend part 1, complete upload with ETag from the resend. Time to time fails with
One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag
Full log for the test:
2023-11-08T03:48:58.827Z info api/router.go:165 call method {"status": 200, "host": "s3.neofs.devenv:8080", "request_id": "8064fad9-2c99-49a9-8162-43611bc34730", "method": "CreateBucket", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "object": "", "description": "OK"}
2023-11-08T03:48:58.873Z info api/router.go:165 call method {"status": 200, "host": "s3.neofs.devenv:8080", "request_id": "fd1a1430-d7f9-42c9-8f5f-01f366774c71", "method": "CreateMultipartUpload", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "object": "mymultipart", "description": "OK"}
2023-11-08T03:48:59.620Z debug layer/multipart_upload.go:233 upload part {"reqId": "a9be0f9d-b677-493c-97d8-834164eab0e4", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "cid": "GqXGsoWCsNHoWgDsfzrcaWmxnzFsSXKLNJZbyW4yG84E", "multipart upload": "7acaa3ad-cf65-45e4-b88d-c0dfdc722785", "part number": 1, "object": "mymultipart", "oid": "6MfTwP3XXduT7xfDvxyfFDaMKtdLub4D5m49Aiiitvqq"}
2023-11-08T03:48:59.773Z info api/router.go:165 call method {"status": 200, "host": "s3.neofs.devenv:8080", "request_id": "a9be0f9d-b677-493c-97d8-834164eab0e4", "method": "UploadPart", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "object": "mymultipart", "description": "OK"}
2023-11-08T03:49:00.448Z debug layer/multipart_upload.go:233 upload part {"reqId": "6fc8178e-8a4d-4b66-abf2-810dbbd234c6", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "cid": "GqXGsoWCsNHoWgDsfzrcaWmxnzFsSXKLNJZbyW4yG84E", "multipart upload": "7acaa3ad-cf65-45e4-b88d-c0dfdc722785", "part number": 1, "object": "mymultipart", "oid": "5GnabGcdXUarRaT6xRgbUQ5LhPAYafY63nq5tVXXoztH"}
2023-11-08T03:49:00.559Z info api/router.go:165 call method {"status": 200, "host": "s3.neofs.devenv:8080", "request_id": "6fc8178e-8a4d-4b66-abf2-810dbbd234c6", "method": "UploadPart", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "object": "mymultipart", "description": "OK"}
2023-11-08T03:49:00.568Z debug layer/multipart_upload.go:629 part details {"reqId": "c45d8727-30be-4e84-ae4d-6a4235a2a163", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "cid": "GqXGsoWCsNHoWgDsfzrcaWmxnzFsSXKLNJZbyW4yG84E", "object": "mymultipart", "upload id": "7acaa3ad-cf65-45e4-b88d-c0dfdc722785", "part numbers": [1, 1], "oids": ["5GnabGcdXUarRaT6xRgbUQ5LhPAYafY63nq5tVXXoztH", "6MfTwP3XXduT7xfDvxyfFDaMKtdLub4D5m49Aiiitvqq"]}
2023-11-08T03:49:00.568Z error handler/util.go:29 call method {"status": 400, "request_id": "c45d8727-30be-4e84-ae4d-6a4235a2a163", "method": "CompleteMultipartUpload", "bucket": "yournamehere-dhlj7gbinpo5t4l1-1", "object": "mymultipart", "description": "could not complete multipart upload", "error": "InvalidPart: 400 => One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag.", "uploadID": "7acaa3ad-cf65-45e4-b88d-c0dfdc722785", "Key": "mymultipart"}
And here is a log after the same test but when it passed:
The problem exists and it is in the same part. As a result, we have in our "part list" two parts with the same ID, but with different ETags. Unfortunately, they may have a similar creation date. This date is taken from the client and this time is a part of the request signature routine, thus we can't change it or replace it on our side.
As a possible solution, we can extend partInfo inside the tree service and put serverCreatedTime, which will be different from request to request. In this case, we can sort all parts and last uploaded rewrite all previous and ETag will be actual.
But there is one more issue with the complete list from the client and it's ETag. Required more deep investigations
test_multipart_resend
Create upload, send part 1, resend part 1, complete upload with ETag from the resend. Time to time fails with
Full log for the test:
And here is a log after the same test but when it passed:
The text was updated successfully, but these errors were encountered: