Skip to content

INTEGRATION [PR#6121 > development/9.4] šŸ› use SUR date instead of the infostore one to have an update LastMod…#6136

Merged
bert-e merged 15 commits intodevelopment/9.4from
w/9.4/bugfix/CLDSRV-878/use-sur-date
Apr 2, 2026
Merged

INTEGRATION [PR#6121 > development/9.4] šŸ› use SUR date instead of the infostore one to have an update LastMod…#6136
bert-e merged 15 commits intodevelopment/9.4from
w/9.4/bugfix/CLDSRV-878/use-sur-date

Conversation

@bert-e
Copy link
Copy Markdown
Contributor

@bert-e bert-e commented Apr 2, 2026

This pull request has been created automatically.
It is linked to its parent pull request #6121.

Do not edit this pull request directly.
If you need to amend/cancel the changeset on branch
w/9.4/bugfix/CLDSRV-878/use-sur-date, please follow this
procedure:

 git fetch
 git checkout w/9.4/bugfix/CLDSRV-878/use-sur-date
 # <amend or cancel the changeset by _adding_ new commits>
 git push origin w/9.4/bugfix/CLDSRV-878/use-sur-date

Please always comment pull request #6121 instead of this one.

Call UtilizationService.getUtilizationMetrics for capacity.xml on the
HEAD and LIST routes, mirroring the existing pattern from GET. This
ensures Last-Modified is derived from SUR metrics (not stale metadata)
on all three routes. Fall back to new Date() when metrics are
unavailable (404) or absent. Also use new Date() as the fallback in
GET instead of the stored LastModified value.

Issue: CLDSRV-878
Move the shared UtilizationService call pattern (bucket key derivation,
404 warn/fallback, error logging) into a single fetchCapacityMetrics
helper in utils.js, used by GET, HEAD, and LIST routes.

Issue: CLDSRV-878
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 2, 2026

āŒ 1 Tests Failed:

Tests completed Failed Passed Skipped
8610 1 8609 0
View the top 1 failed test(s) by shortest run time
"before each" hook for "should retrieve a part copied from an MPU after the original part was overwritten"::GET object With default signature With PartNumber field uploadPartCopy overwrite "before each" hook for "should retrieve a part copied from an MPU after the original part was overwritten"
Stack Traces | 6.27s run time
Connection timed out after 5000 ms

To view more test analytics, go to the Test Analytics Dashboard
šŸ“‹ Got 3 mins? Take this short survey to help us improve Test Analytics.

bucketMetrics = { date: new Date() };
}

const modified = bucketMetrics.date;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

buildVeeamFileData uses bucketMetrics.date (which is new Date()) as the modified value for system.xml requests (line 288). In the old code, getFileToBuild returned the stored LastModified from the capability data (e.g. the date when system.xml was last PUT), and that was used as the Last-Modified header.

Now getFileToBuild no longer returns LastModified in the value object (line 211), and it is deleted from the source before buildVeeamFileData can access it. This means every GET/HEAD of system.xml returns the current time as Last-Modified, which:
- Breaks If-Modified-Since caching for system.xml
- Is inconsistent with LIST (list.js:130) which still uses the stored file.LastModified for system.xml

Consider capturing the stored LastModified before calling getFileToBuild and using it for system.xml instead of bucketMetrics.date.

— Claude Code

@claude
Copy link
Copy Markdown

claude bot commented Apr 2, 2026

  • system.xml Last-Modified regression: buildVeeamFileData uses new Date() for system.xml instead of the stored LastModified from the capability data. This changes GET/HEAD behavior (always returns current time) and is inconsistent with LIST which still uses the stored date.
    • Capture the stored LastModified before getFileToBuild deletes it, and use it for system.xml requests.

Review by Claude Code

@bert-e bert-e merged commit 87be88a into development/9.4 Apr 2, 2026
31 checks passed
@bert-e bert-e deleted the w/9.4/bugfix/CLDSRV-878/use-sur-date branch April 2, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants