mountpoint-s3 icon indicating copy to clipboard operation
mountpoint-s3 copied to clipboard

Integration tests fail against non-US regions without a FIPS endpoint

Open dannycjones opened this issue 2 years ago • 2 comments

This is not a bug of the connector but instead of the integration tests.

Running the integration tests related to FIPS will fail against non-US regions such as eu-west-1.

Test output against eu-west-1. Second backtrace is excluded.

RUST_BACKTRACE=1 S3_BUCKET_NAME=mountpoint-dev-euw1-happybucket3f5e770e-ouzzdtbh53m5 S3_BUCKET_TEST_PREFIX=github-actions-tmp/run-4437065662/attempt-1/ S3_FORBIDDEN_BUCKET_NAME=mountpoint-dev-euw1-nopermbuckete72ffdcb-xihjutllbz57 AWS_REGION=eu-west-1 S3_REGION=eu-west-1 cargo test -p mountpoint-s3-client --test endpoint --features s3_tests
test test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects ... FAILED
test test_addressing_style_uri_fips::addressingstyle_virtual_expects ... FAILED

failures:

---- test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects stdout ----
thread 'test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects' panicked at 'get_object body part failed: ClientError(ResponseError(MetaRequestResult { response_status: 0, crt_error: Error(1059, "aws-c-io: AWS_IO_DNS_INVALID_NAME, Host name was invalid for dns resolution."), error_response_headers: None, error_response_body: None }))', mountpoint-s3-client/tests/common/mod.rs:96:32
stack backtrace:
   0: rust_begin_unwind
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
   2: core::result::unwrap_failed
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1791:5
   3: core::result::Result<T,E>::expect
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1070:23
   4: endpoint::common::check_get_result::{{closure}}
             at ./tests/common/mod.rs:96:30
   5: endpoint::run_test::{{closure}}
             at ./tests/endpoint.rs:36:46
   6: endpoint::test_addressing_style_uri_fips_dualstack::{{closure}}
             at ./tests/endpoint.rs:89:5
   7: endpoint::test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects::{{closure}}
             at ./tests/endpoint.rs:82:1
   8: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
   9: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/future/future.rs:124:9
  10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:541:57
  11: tokio::runtime::coop::with_budget
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/coop.rs:102:5
  12: tokio::runtime::coop::budget
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/coop.rs:68:5
  13: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:541:25
  14: tokio::runtime::scheduler::current_thread::Context::enter
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:350:19
  15: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:540:36
  16: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:615:57
  17: tokio::macros::scoped_tls::ScopedKey<T>::set
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/macros/scoped_tls.rs:61:9
  18: tokio::runtime::scheduler::current_thread::CoreGuard::enter
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:615:27
  19: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:530:19
  20: tokio::runtime::scheduler::current_thread::CurrentThread::block_on
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/scheduler/current_thread.rs:154:24
  21: tokio::runtime::runtime::Runtime::block_on
             at /Users/djonesoa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.25.0/src/runtime/runtime.rs:282:47
  22: endpoint::test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects
             at ./tests/endpoint.rs:82:1
  23: endpoint::test_addressing_style_uri_fips_dualstack::addressingstyle_virtual_expects::{{closure}}
             at ./tests/endpoint.rs:82:1
  24: core::ops::function::FnOnce::call_once
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/ops/function.rs:507:5
  25: core::ops::function::FnOnce::call_once
             at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/ops/function.rs:507:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

dannycjones avatar Mar 16 '23 15:03 dannycjones

Seems like it's really a bug in documenting the tests—we need to test against a region that has all these endpoint options available, so only some regions are valid choices for S3_REGION.

jamesbornholt avatar Mar 16 '23 15:03 jamesbornholt

Agree, although I think it would be preferable to skip these tests if the region is not known to have FIPS endpoint rather than rule out these regions for integration tests.

dannycjones avatar Mar 16 '23 15:03 dannycjones

Let's close this out for now. We can revisit if we ever try to make the tests multi-region, but I don't think we expect to make any changes here for the moment.

jamesbornholt avatar Apr 14 '23 16:04 jamesbornholt