Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add extended checksum #15433

Merged
merged 20 commits into from Aug 29, 2022
Merged

Conversation

klauspost
Copy link
Contributor

@klauspost klauspost commented Jul 29, 2022

Description

Add integrity checks https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html

For now only added to PutObject, and no trailing checksum support. Multipart requires more testing before it can be reliably enabled.

See #14885 for more information.

How to test this PR?

Send checksums as described in document above.

Tested through minio/minio-go#1690

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Unit tests added/updated

cmd/erasure-multipart.go Outdated Show resolved Hide resolved
@klauspost klauspost marked this pull request as ready for review July 29, 2022 16:05
cmd/xl-storage-format-v1.go Outdated Show resolved Hide resolved
@klauspost klauspost marked this pull request as draft August 23, 2022 16:20
klauspost added a commit to klauspost/minio-go that referenced this pull request Aug 26, 2022
Single part, checksums must be done manually for now until we have trailing headers.

For multipart we add CRC32C if we don't already send a checksum and we read the content before sending.

Also serves as test for minio/minio#15433 - but should be backwards compatible.

Needs to be tested against S3, only implemented from docs.
@klauspost klauspost marked this pull request as ready for review August 29, 2022 14:26
@minio-trusted
Copy link
Contributor

Mint Automation

Test Result
mint-large-bucket.sh ✔️
mint-fs.sh ✔️
mint-gateway-s3.sh ✔️
mint-erasure.sh ✔️
mint-dist-erasure.sh ✔️
mint-compress-encrypt-dist-erasure.sh ✔️
mint-pools.sh ✔️
Deleting image on docker hub
Deleting image locally

@harshavardhana
Copy link
Member

Unrelated to this PR on windows I have seen this occasional failure

=== RUN   TestGetObjectWithOutdatedDisks
Formatting 1st pool, 1 set(s), 6 drives per set.
WARNING: Host local has more than 3 drives of set. A host failure will result in data becoming unavailable.
    erasure-object_test.go:1214: Test 1: Expected data to have md5sum = `23ca472302f49b3ea5592b146a312da0`, found `1fc602bb3c9540e6dc5c255a1c2e6592`
--- FAIL: TestGetObjectWithOutdatedDisks (0.07s)

@klauspost would you be able to investigate?

@harshavardhana harshavardhana merged commit a9f1ad7 into minio:master Aug 29, 2022
harshavardhana pushed a commit to minio/minio-go that referenced this pull request Sep 16, 2022
Single part, checksums must be done manually for now until we have trailing headers.

For multipart we add CRC32C if we don't already send a checksum and we read the content before sending.

Also serves as test for minio/minio#15433 - but should be backwards compatible.
@klauspost klauspost deleted the add-extended-checksum branch September 26, 2022 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants