Conversation
bcc2ced to
24b01eb
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
landonxjames
reviewed
Dec 9, 2025
Contributor
landonxjames
left a comment
There was a problem hiding this comment.
This generally looks good. Couple of questions in the comments.
The last thing that I would like to see is a test run with the new workflow with crc-fast pinned to the problematic version (1.4 I think?) that fails. It would be nice to have some proof that these new tests would have caught the issue we saw that caused us to pin the dependency in the first place.
This comment was marked as resolved.
This comment was marked as resolved.
Contributor
Author
|
Created test PR #4446 with crc-fast pinned to 1.4. Once CI runs, it should demonstrate the ARM tests failing with SIGILL, proving these architecture tests would have caught the issue before merge. |
As suggested in review, aws-smithy-http-client should be tested across architectures since its dependencies (rustls, aws-lc) have arch-specific implementations.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
A new generated diff is ready to view.
A new doc preview is ready to view. |
vcjana
added a commit
that referenced
this pull request
Apr 15, 2026
Expand the smithy-rs canary to deploy and run ARM64 (aarch64) Lambda functions in addition to x86_64, catching architecture-specific runtime bugs like the crc-fast 1.4 SIGILL incident before merge. Changes: - Add --architecture flag to canary runner (run.rs), wire through to Lambda creation with .architectures() and arch-aware runtime selection (provided.al2 for x86_64, provided.al2023 for aarch64) - Add architecture-suffixed Lambda function names to prevent collisions when both canaries run in parallel - Accept architecture as 5th arg in run-canary script - Skip cross-compilation tool when building natively on ARM - Reduce hash truncation in bundle names (24->16 chars) to leave headroom for architecture suffix within Lambda 64-char name limit - Add canary-arm CI job that runs directly on ubuntu-24.04-arm without Docker (the existing Docker build image is x86_64-only in ECR) - Existing x86_64 canary is unchanged Supersedes #4428. Addresses #4380.
vcjana
added a commit
that referenced
this pull request
Apr 17, 2026
Expand the smithy-rs canary to deploy and run ARM64 (aarch64) Lambda functions in addition to x86_64, catching architecture-specific runtime bugs like the crc-fast 1.4 SIGILL incident before merge. Changes: - Add --architecture flag to canary runner (run.rs), wire through to Lambda creation with .architectures() and arch-aware runtime selection (provided.al2 for x86_64, provided.al2023 for aarch64) - Add architecture-suffixed Lambda function names to prevent collisions when both canaries run in parallel - Accept architecture as 5th arg in run-canary script - Skip cross-compilation tool when building natively on ARM - Reduce hash truncation in bundle names (24->16 chars) to leave headroom for architecture suffix within Lambda 64-char name limit - Add canary-arm CI job that runs directly on ubuntu-24.04-arm without Docker (the existing Docker build image is x86_64-only in ECR) - Existing x86_64 canary is unchanged Supersedes #4428. Addresses #4380.
vcjana
added a commit
that referenced
this pull request
Apr 20, 2026
## Motivation Addresses #4380. Supersedes #4428. The smithy-rs canary only deploys x86_64 Lambda functions. This meant the [crc-fast 1.4 SIGILL incident](#4264) was not caught by smithy-rs CI it was discovered later in the aws-sdk-rust canary, after release. This PR expands the canary to also deploy **ARM64 (aarch64) Lambda functions** on AWS Graviton, catching architecture-specific runtime bugs before merge. ## Approach The existing x86_64 canary runs inside a Docker container via the `docker-build` action. The Docker image is x86_64-only in ECR, so instead of fixing Docker for ARM, this PR adds a **separate `canary-arm` job** that runs directly on `ubuntu-24.04-arm` without Docker. The ARM runner compiles the canary natively, deploys an ARM64 Lambda on Graviton, and exercises real S3/checksum code paths — the same paths where crc-fast SIGILL would manifest. ## Changes **Canary runner (`run.rs`):** - Add `--architecture` CLI flag to `RunArgs`/`Options` - Wire architecture through to `build_bundle()` (replaces hardcoded x86_64) - Set `.architectures(lambda_arch)` on Lambda creation (ARM64 → `Arm64`) - Use `provided.al2023` runtime for ARM64 (al2 is deprecated) - Architecture-suffixed Lambda function names to prevent parallel collisions **Build bundle (`build_bundle.rs`):** - Skip `cross` tool when building natively on ARM (`std::env::consts::ARCH` check) - Reduce hash truncation from 24→16 chars to leave headroom for arch suffix in 64-char Lambda name limit **Run script (`run-canary`):** - Accept optional 5th argument for architecture (defaults to `x86_64`) - Pass `--architecture` to canary runner **CI workflows (`ci.yml`, `manual-canary.yml`):** - Add new `canary-arm` job on `ubuntu-24.04-arm` (no Docker) - Existing x86_64 canary is completely unchanged ## Testing - Canary runner: `cargo check` ✓, `cargo clippy` ✓, `cargo test` 11/11 ✓ - YAML validation: both workflow files pass syntax check - Full CI verification pending (this PR) ## What is NOT changed - Existing x86_64 canary behavior (zero risk) - Docker infrastructure (`Dockerfile`, `acquire-build-image`, `docker-build` action) - Any runtime crates, codegen, or Smithy models - `arch.rs` (already supports `Aarch64`)
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.
Summary
Adds multi-architecture testing to smithy-rs CI to catch architecture-specific issues like crc-fast 1.4 SIGILL on ARM before merge.
Changes
test-runtime-architecturesjob to CI workflowcrossfor cross-compilation and testingWhy its needed?
The crc-fast 1.4 SIGILL bug was only caught after release because smithy-rs only tested on x86_64. This change would have caught it before merge by testing on ARM.
Testing