CLDSRV-872: store checksum in object metadata#6114
Conversation
Hello leif-scality,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
Codecov Report❌ Patch coverage is
Additional details and impacted files
... and 1 file with indirect coverage changes @@ Coverage Diff @@
## improvement/CLDSRV-863-checksums-put-object-part #6114 +/- ##
====================================================================================
+ Coverage 84.66% 84.69% +0.03%
====================================================================================
Files 207 207
Lines 13518 13540 +22
====================================================================================
+ Hits 11445 11468 +23
+ Misses 2073 2072 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Review by Claude Code |
5d6c434 to
1b5a063
Compare
|
Review summary: (1) Arsenal dependency pinned to a branch instead of a tag - must update to a released tag. (2) checkHashMatchMD5 JSDoc missing the new checksumStream parameter. (3) dataStore callback returns a 4th checksum arg but objectPutPart and routeBackbeat callers ignore it. -- Review by Claude Code |
1b5a063 to
b80b2ad
Compare
|
|
|
| "@hapi/joi": "^17.1.1", | ||
| "@smithy/node-http-handler": "^3.0.0", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#8.3.6", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#improvement/ARSN-557-add-checksum-to-object-metadata", |
There was a problem hiding this comment.
Arsenal dependency is pinned to a branch (improvement/ARSN-557-add-checksum-to-object-metadata) instead of a tag. Git-based deps must pin to a tag for reproducible builds. Update this to a released tag before merging.
— Claude Code
lib/routes/routeBackbeat.js
Outdated
| // ChecksumTransform. The computed value is not stored here because | ||
| // this is a data-only write — metadata is written separately by | ||
| // Backbeat, which should propagate the source object's checksum. | ||
| backendInfo, log, (err, retrievalInfo, md5) => { |
There was a problem hiding this comment.
The comment says "checksum (4th arg)" but it is positioned between dataStore positional arguments, not next to the callback. This reads as if it refers to the 4th positional arg of dataStore (which is payloadLen). Move it above the callback to clarify it refers to the callback's 4th parameter.
— Claude Code
Review by Claude Code |
| "@hapi/joi": "^17.1.1", | ||
| "@smithy/node-http-handler": "^3.0.0", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#8.3.6", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#improvement/ARSN-557-add-checksum-to-object-metadata", |
There was a problem hiding this comment.
Arsenal is pinned to a feature branch (improvement/ARSN-557-add-checksum-to-object-metadata) instead of a release tag. This will break reproducible builds and must be updated to a tag before merging.
— Claude Code
| metadataStoreParams.checksum = { algorithm, value, type: 'FULL_OBJECT' }; | ||
| return callback(null); | ||
| }) | ||
| .catch(err => callback(err)); |
There was a problem hiding this comment.
Double-callback risk: if callback throws inside .then(), the .catch() handler will call callback(err) again. This is the classic try/catch + callback anti-pattern but in promise form. Wrap the callback call in a process.nextTick or use a flag to guard against re-entry, or restructure to avoid mixing promises and callbacks.
— Claude Code
Review by Claude Code |
| "@hapi/joi": "^17.1.1", | ||
| "@smithy/node-http-handler": "^3.0.0", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#8.3.6", | ||
| "arsenal": "git+https://github.com/scality/Arsenal#improvement/ARSN-557-add-checksum-to-object-metadata", |
There was a problem hiding this comment.
Arsenal is pinned to a branch (improvement/ARSN-557-add-checksum-to-object-metadata) instead of a tag. Git-based deps must pin to a tag for reproducible builds — a branch ref can resolve to different commits over time.
— Claude Code
Review by Claude Code |
No description provided.