Upgrade aws-sdk-cpp 1.11.474 -> 1.11.820#3153
Open
poodlewars wants to merge 2 commits into
Open
Conversation
Contributor
|
@/tmp/summary.md |
added 2 commits
June 5, 2026 16:46
Bump the AWS SDK and its CRT dependency stack to the latest versions
resolvable from vcpkg. This advances the vcpkg submodule and
builtin-baseline together (bb14c5ab24 -> cea592f477) because vcpkg
resolves dependency versions against the commit named by
builtin-baseline, not the submodule working tree; the override versions
for aws-crt-cpp and the aws-c-* libraries only exist in the newer
version database.
Overrides updated to the CRT set that aws-sdk-cpp 1.11.820 bundles as
submodules (crt-cpp 0.39.1, aws-c-common 0.13.1, aws-c-io 0.26.3,
aws-c-s3 0.12.4, aws-c-http 0.11.0, aws-c-auth 0.10.3, aws-c-cal
0.9.14, aws-c-mqtt 0.15.2, aws-c-event-stream 0.7.1, aws-c-sdkutils
0.2.4, aws-checksums 0.2.10), keeping our pins aligned with the
versions AWS tested together.
The overlay vcpkg.json was regenerated from the 1.11.820 source
(435 service features, up from 414) and the portfile SHA512 updated to
the 1.11.820 tarball (verified against the upstream vcpkg port hash and
a direct download).
Patch changes
-------------
Removed fix-refresh.patch. It changed RefreshIfExpired() in
STSProfileCredentialsProvider.cpp from "||" to "&&" so a non-expired
credential would not be refreshed merely because the reload interval had
elapsed. Upstream has since adopted exactly this logic and gone further:
1.11.820 reads "!IsTimeToRefresh(...) && !m_credentials.IsEmpty() &&
!m_credentials.ExpiresSoon(...)". The fix is upstream, and the patch's
context lines no longer exist, so it would fail to apply.
Removed fix-win-https-conn.patch (Windows only). It dropped the
"&& m_verifySSL" guard in WinHttpSyncHttpClient::OpenRequest so HTTPS
requests always set WINHTTP_FLAG_SECURE regardless of verifySSL.
1.11.820 already sets the flag unconditionally for HTTPS
("if (scheme == HTTPS) requestFlags |= WINHTTP_FLAG_SECURE;"), so the
patch is redundant and, again, no longer applies to the refactored code.
Added configure-binary-dir.patch (symlinked from the upstream vcpkg
port, aws/aws-sdk-cpp#3459). 1.11.820 generates VersionConfig.h and
SDKConfig.h into the source tree during configure; the patch redirects
them to the binary dir and reads the version from the VERSION file. This
is part of upstream's own patch list for 1.11.820 and is required to
build against a read-only source tree.
The >=1.11.486 default data-integrity (checksum) behaviour change that
previously blocked this upgrade is already neutralised in
s3_storage.hpp::configure_s3_checksum_validation, which forces
when_required unless the user opts in; the override note is updated to
record this.
Other dependencies without explicit overrides move to the new baseline
(e.g. boost 1.91.0, curl 8.20.0). vcpkg dry-run confirms the full plan
resolves and selects aws-sdk-cpp 1.11.820 with [s3, identity-management,
sts, cognito-identity, core].
The aws-sdk-cpp baseline bump floated thrift (a transitive dependency of the pinned arrow) from 0.22.0 to 0.23.0. thrift 0.23.0 builds locally but fails to compile in the manylinux CI wheel-build container. Pin it back to 0.22.0#2, the version arrow 21.0.0#2 was tested against, which is still present in the new baseline version database.
97f5764 to
cf0e659
Compare
IvoDD
approved these changes
Jun 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Build and test with AWS_S3 tests: https://github.com/man-group/ArcticDB/actions/runs/26978150121
Benchmarks with AWS_S3: https://github.com/man-group/ArcticDB/actions/runs/26978179363
I've tested against VAST and PURE. I looked at the checksums on VAST (haven't looked at PURE) and unfortunately looks like they aren't providing checksums on GET requests - I will raise with them. https://code.maninvestments.com/aseaton/scratch/src/branch/main/support/checksums
The motivation for this is so that we can opt in (on adhoc basis, to investigate particular issues) to the checksum behaviour using,
Documentation for these settings are here https://docs.aws.amazon.com/sdkref/latest/guide/feature-dataintegrity.html .
These settings don't do anything with our current SDK version so we need to upgrade.
Bump the AWS SDK and its CRT dependency stack to the latest versions resolvable from vcpkg. This advances the vcpkg submodule and builtin-baseline together (bb14c5ab24 -> cea592f477).
Overrides updated to the CRT set that aws-sdk-cpp 1.11.820 bundles as submodules (crt-cpp 0.39.1, aws-c-common 0.13.1, aws-c-io 0.26.3, aws-c-s3 0.12.4, aws-c-http 0.11.0, aws-c-auth 0.10.3, aws-c-cal 0.9.14, aws-c-mqtt 0.15.2, aws-c-event-stream 0.7.1, aws-c-sdkutils 0.2.4, aws-checksums 0.2.10).
Removed fix-refresh.patch. It changed RefreshIfExpired() in STSProfileCredentialsProvider.cpp from "||" to "&&" so a non-expired credential would not be refreshed merely because the reload interval had elapsed. Upstream has since adopted exactly this logic and gone further: 1.11.820 reads "!IsTimeToRefresh(...) && !m_credentials.IsEmpty() && !m_credentials.ExpiresSoon(...)". The fix is upstream, and the patch's context lines no longer exist, so it would fail to apply.
Removed fix-win-https-conn.patch (Windows only). It dropped the "&& m_verifySSL" guard in WinHttpSyncHttpClient::OpenRequest so HTTPS requests always set WINHTTP_FLAG_SECURE regardless of verifySSL. 1.11.820 already sets the flag unconditionally for HTTPS ("if (scheme == HTTPS) requestFlags |= WINHTTP_FLAG_SECURE;"), so the patch is redundant and, again, no longer applies to the refactored code.
Added configure-binary-dir.patch (symlinked from the upstream vcpkg port, aws/aws-sdk-cpp#3459). 1.11.820 generates VersionConfig.h and SDKConfig.h into the source tree during configure; the patch redirects them to the binary dir and reads the version from the VERSION file. This is part of upstream's own patch list for 1.11.820 and is required to build against a read-only source tree.
The >=1.11.486 default data-integrity (checksum) behaviour change that previously blocked this upgrade is already handled in s3_storage.hpp::configure_s3_checksum_validation, which forces when_required unless the user opts in; the override note is updated to record this. Conda has already been running past this version.
We also needed to upgrade s2n. It must track aws-c-io; 0.26.3 needs s2n >=1.5.10 (s2n/unstable/cleanup.h). 1.7.3 is the version bundled with aws-crt-cpp 0.39.1.
Other upgrades pulled in by the new baseline:
boost-compatis newly pulled as a 1.91 component.azure-core-cpp 1.12.0/azure-identity-cpp 1.6.0.version>=8.18.0, not overridden.