Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiplication overflow in smithy runtime exponential backoff #960

Closed
celaus opened this issue Nov 17, 2023 · 5 comments
Closed

Multiplication overflow in smithy runtime exponential backoff #960

celaus opened this issue Nov 17, 2023 · 5 comments
Labels
bug This issue is a bug. p1 This is a high priority issue pending-release This issue will be fixed by an approved PR that hasn't been released yet.

Comments

@celaus
Copy link

celaus commented Nov 17, 2023

Describe the bug

The program lists a lot of AWS resources and fetches various details about them, creating/cloning the clients as needed per region/resource type. It looks like that in certain scenarios this leads to a multiplication overflow.

Expected Behavior

No overflow.

Current Behavior

After many requests this randomly occurs:

thread 'tokio-runtime-worker' panicked at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/num/mod.rs:1142:5:
attempt to multiply with overflow
stack backtrace:
   0: rust_begin_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
   2: core::panicking::panic
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:127:5
   3: core::num::<impl u32>::pow
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/num/uint_macros.rs:1988:24
   4: aws_smithy_runtime::client::retries::strategy::standard::calculate_exponential_backoff
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/retries/strategy/standard.rs:289:30
   5: aws_smithy_runtime::client::retries::strategy::standard::StandardRetryStrategy::calculate_backoff
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/retries/strategy/standard.rs:138:35
   6: <aws_smithy_runtime::client::retries::strategy::standard::StandardRetryStrategy as aws_smithy_runtime_api::client::retries::RetryStrategy>::should_attempt_retry
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/retries/strategy/standard.rs:241:19
   7: <aws_smithy_runtime_api::client::retries::SharedRetryStrategy as aws_smithy_runtime_api::client::retries::RetryStrategy>::should_attempt_retry
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-api-0.100.0/src/client/retries.rs:106:9
   8: aws_smithy_runtime::client::orchestrator::try_op::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/orchestrator.rs:307:52
   9: aws_smithy_runtime::client::orchestrator::try_op::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/orchestrator.rs:197:1
  10: aws_smithy_runtime::client::orchestrator::invoke_with_stop_point::{{closure}}::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/orchestrator.rs:160:72
  11: <aws_smithy_runtime::client::timeout::MaybeTimeoutFuture<InnerFuture> as core::future::future::Future>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/timeout.rs:82:68
  12: aws_smithy_runtime::client::orchestrator::invoke_with_stop_point::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/orchestrator.rs:166:10
  13: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:321:9
  14: aws_smithy_runtime::client::orchestrator::invoke_with_stop_point::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-runtime-0.58.0/src/client/orchestrator.rs:169:6
  15: aws_sdk_route53domains::operation::list_domains::ListDomains::orchestrate_with_stop_point::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-sdk-route53domains-0.37.0/src/operation/list_domains.rs:54:145
  16: aws_sdk_route53domains::operation::list_domains::ListDomains::orchestrate::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-sdk-route53domains-0.37.0/src/operation/list_domains.rs:32:14
  17: aws_sdk_route53domains::operation::list_domains::paginator::ListDomainsPaginator::send::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-sdk-route53domains-0.37.0/src/operation/list_domains/paginator.rs:88:126
  18: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/future/future.rs:125:9
  19: aws_smithy_async::future::pagination_stream::fn_stream::FnStream<Item>::poll_next
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-async-0.100.0/src/future/pagination_stream/fn_stream.rs:89:24
  20: aws_smithy_async::future::pagination_stream::fn_stream::FnStream<Item>::next::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-async-0.100.0/src/future/pagination_stream/fn_stream.rs:78:22
  21: <core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/future/poll_fn.rs:151:9
  22: aws_smithy_async::future::pagination_stream::fn_stream::FnStream<Item>::next::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-async-0.100.0/src/future/pagination_stream/fn_stream.rs:78:49
  23: aws_smithy_async::future::pagination_stream::PaginationStream<Item>::next::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-smithy-async-0.100.0/src/future/pagination_stream.rs:60:23
  24: coralogixagent::pipeline::sources::cspm::aws::api::route53::list_all_domains::{{closure}}
             at ./src/pipeline/sources/cspm/aws/api/route53.rs:157:5
  25: coralogixagent::pipeline::sources::cspm::aws::api::route53::Route53Api::list_all::{{closure}}
             at ./src/pipeline/sources/cspm/aws/api/route53.rs:81:58
  26: <coralogixagent::pipeline::sources::cspm::aws::api::AwsApiProxy as coralogixagent::pipeline::sources::ApiProxy<alloc::vec::Vec<coralogixagent::pipeline::sources::cspm::aws::types::route53::AwsRoute53>,()>>::fetch::{{closure}}
             at ./src/pipeline/sources/cspm/aws/api.rs:361:14
  27: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/future/future.rs:125:9
  28: <coralogixagent::pipeline::sources::cspm::aws::workers::AwsWorker as coralogixagent::pipeline::sources::SourceWorker<coralogixagent::pipeline::sources::cspm::aws::types::route53::AwsRoute53>>::run::{{closure}}
             at ./src/pipeline/sources/cspm/aws/workers.rs:84:50
  29: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/future/future.rs:125:9
  30: <coralogixagent::pipeline::sources::SourceHandler<W,T> as cx_actors::Handler<coralogixagent::pipeline::triggers::ExecutionTrigger>>::process_messages::{{closure}}
             at ./src/pipeline/sources.rs:428:54
  31: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/future/future.rs:125:9
  32: cx_actors::Actor<T,H>::start::{{closure}}
             at /Users/cm/.cargo/git/checkouts/cx-actors-25e8af5bec9d5232/fb8b243/src/lib.rs:180:56
  33: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/core.rs:328:17
  34: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/loom/std/unsafe_cell.rs:16:9
  35: tokio::runtime::task::core::Core<T,S>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/core.rs:317:13
  36: tokio::runtime::task::harness::poll_future::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:485:19
  37: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panic/unwind_safe.rs:271:9
  38: std::panicking::try::do_call
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40
  39: ___rust_try
  40: std::panicking::try
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19
  41: std::panic::catch_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14
  42: tokio::runtime::task::harness::poll_future
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:473:18
  43: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:208:27
  44: tokio::runtime::task::harness::Harness<T,S>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:153:15
  45: tokio::runtime::task::raw::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/raw.rs:271:5
  46: tokio::runtime::task::raw::RawTask::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/raw.rs:201:18
  47: tokio::runtime::task::LocalNotified<S>::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/mod.rs:408:9
  48: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:577:13
  49: tokio::runtime::coop::with_budget
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/coop.rs:107:5
  50: tokio::runtime::coop::budget
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/coop.rs:73:5
  51: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:576:9
  52: tokio::runtime::scheduler::multi_thread::worker::Context::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:526:24
  53: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:491:21
  54: tokio::runtime::context::scoped::Scoped<T>::set
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/context/scoped.rs:40:9
  55: tokio::runtime::context::set_scheduler::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/context.rs:176:26
  56: std::thread::local::LocalKey<T>::try_with
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/thread/local.rs:270:16
  57: std::thread::local::LocalKey<T>::with
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/thread/local.rs:246:9
  58: tokio::runtime::context::set_scheduler
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/context.rs:176:9
  59: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:486:9
  60: tokio::runtime::context::runtime::enter_runtime
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/context/runtime.rs:65:16
  61: tokio::runtime::scheduler::multi_thread::worker::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:478:5
  62: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/scheduler/multi_thread/worker.rs:447:45
  63: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/blocking/task.rs:42:21
  64: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/core.rs:328:17
  65: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/loom/std/unsafe_cell.rs:16:9
  66: tokio::runtime::task::core::Core<T,S>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/core.rs:317:13
  67: tokio::runtime::task::harness::poll_future::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:485:19
  68: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panic/unwind_safe.rs:271:9
  69: std::panicking::try::do_call
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40
  70: ___rust_try
  71: std::panicking::try
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19
  72: std::panic::catch_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14
  73: tokio::runtime::task::harness::poll_future
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:473:18
  74: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:208:27
  75: tokio::runtime::task::harness::Harness<T,S>::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/harness.rs:153:15
  76: tokio::runtime::task::raw::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/raw.rs:271:5
  77: tokio::runtime::task::raw::RawTask::poll
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/raw.rs:201:18
  78: tokio::runtime::task::UnownedTask<S>::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/task/mod.rs:445:9
  79: tokio::runtime::blocking::pool::Task::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/blocking/pool.rs:159:9
  80: tokio::runtime::blocking::pool::Inner::run
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/blocking/pool.rs:513:17
  81: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at /Users/cm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.34.0/src/runtime/blocking/pool.rs:471:13
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Reproduction Steps

Uncertain

Possible Solution

Cap the exponential backoff waiting time?

Additional Information/Context

No response

Version

This also happened in 0.35.

~~~
├── aws-config v0.100.0
│   ├── aws-credential-types v0.58.0
│   │   ├── aws-smithy-async v0.100.0
│   │   ├── aws-smithy-runtime-api v0.100.0
│   │   │   ├── aws-smithy-async v0.100.0 (*)
│   │   │   ├── aws-smithy-types v0.100.0
│   │   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-http v0.58.0
│   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-types v0.100.0
│   │   │   ├── aws-credential-types v0.58.0 (*)
│   │   │   ├── aws-smithy-async v0.100.0 (*)
│   │   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   │   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-runtime v0.58.0
│   │   ├── aws-credential-types v0.58.0 (*)
│   │   ├── aws-http v0.58.0 (*)
│   │   ├── aws-sigv4 v0.58.0
│   │   │   ├── aws-credential-types v0.58.0 (*)
│   │   │   ├── aws-smithy-eventstream v0.58.0
│   │   │   │   ├── aws-smithy-types v0.100.0 (*)
│   │   │   ├── aws-smithy-http v0.58.0
│   │   │   │   ├── aws-smithy-eventstream v0.58.0 (*)
│   │   │   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   │   │   ├── aws-smithy-types v0.100.0 (*)
│   │   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-smithy-async v0.100.0 (*)
│   │   ├── aws-smithy-eventstream v0.58.0 (*)
│   │   ├── aws-smithy-http v0.58.0 (*)
│   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-types v0.100.0 (*)
│   ├── aws-sdk-sso v0.37.0
│   │   ├── aws-credential-types v0.58.0 (*)
│   │   ├── aws-http v0.58.0 (*)
│   │   ├── aws-runtime v0.58.0 (*)
│   │   ├── aws-smithy-async v0.100.0 (*)
│   │   ├── aws-smithy-http v0.58.0 (*)
│   │   ├── aws-smithy-json v0.58.0
│   │   │   └── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-smithy-runtime v0.58.0
│   │   │   ├── aws-smithy-async v0.100.0 (*)
│   │   │   ├── aws-smithy-http v0.58.0 (*)
│   │   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-types v0.100.0 (*)
│   ├── aws-sdk-ssooidc v0.37.0
│   │   ├── aws-credential-types v0.58.0 (*)
│   │   ├── aws-http v0.58.0 (*)
│   │   ├── aws-runtime v0.58.0 (*)
│   │   ├── aws-smithy-async v0.100.0 (*)
│   │   ├── aws-smithy-http v0.58.0 (*)
│   │   ├── aws-smithy-json v0.58.0 (*)
│   │   ├── aws-smithy-runtime v0.58.0 (*)
│   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-types v0.100.0 (*)
│   ├── aws-sdk-sts v0.37.0
│   │   ├── aws-credential-types v0.58.0 (*)
│   │   ├── aws-http v0.58.0 (*)
│   │   ├── aws-runtime v0.58.0 (*)
│   │   ├── aws-smithy-async v0.100.0 (*)
│   │   ├── aws-smithy-http v0.58.0 (*)
│   │   ├── aws-smithy-json v0.58.0 (*)
│   │   ├── aws-smithy-query v0.58.0
│   │   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-smithy-runtime v0.58.0 (*)
│   │   ├── aws-smithy-runtime-api v0.100.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   │   ├── aws-smithy-xml v0.58.0
│   │   ├── aws-types v0.100.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-credential-types v0.58.0 (*)
├── aws-sdk-accessanalyzer v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-account v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-apigateway v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-autoscaling v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-backup v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-cloudformation v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-cloudfront v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-cloudtrail v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-dax v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-docdb v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-dynamodb v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-ec2 v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-ecr v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-ecs v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-efs v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-eks v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-elasticache v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-elasticloadbalancing v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-elasticloadbalancingv2 v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-emr v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-fsx v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-guardduty v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-iam v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-kms v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-lambda v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-networkfirewall v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-opensearch v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-organizations v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-rds v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-redshift v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-query v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-route53 v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-route53domains v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-s3 v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-sigv4 v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-checksums v0.58.0
│   │   ├── aws-smithy-http v0.58.0 (*)
│   │   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-eventstream v0.58.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-s3control v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-smithy-xml v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-securityhub v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-servicequotas v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-sqs v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-sdk-sts v0.37.0 (*)
├── aws-sdk-wafv2 v0.37.0
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-http v0.58.0 (*)
│   ├── aws-runtime v0.58.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-http v0.58.0 (*)
│   ├── aws-smithy-json v0.58.0 (*)
│   ├── aws-smithy-runtime v0.58.0 (*)
│   ├── aws-smithy-runtime-api v0.100.0 (*)
│   ├── aws-smithy-types v0.100.0 (*)
│   ├── aws-types v0.100.0 (*)
├── aws-smithy-async v0.100.0 (*)
├── aws-smithy-types-convert v0.58.0
│   ├── aws-smithy-types v0.100.0 (*)
├── aws-types v0.100.0 (*)
│   ├── aws-config v0.100.0 (*)
│   ├── aws-credential-types v0.58.0 (*)
│   ├── aws-sdk-accessanalyzer v0.37.0 (*)
│   ├── aws-sdk-account v0.37.0 (*)
│   ├── aws-sdk-apigateway v0.37.0 (*)
│   ├── aws-sdk-autoscaling v0.37.0 (*)
│   ├── aws-sdk-backup v0.37.0 (*)
│   ├── aws-sdk-cloudformation v0.37.0 (*)
│   ├── aws-sdk-cloudfront v0.37.0 (*)
│   ├── aws-sdk-cloudtrail v0.37.0 (*)
│   ├── aws-sdk-dax v0.37.0 (*)
│   ├── aws-sdk-docdb v0.37.0 (*)
│   ├── aws-sdk-dynamodb v0.37.0 (*)
│   ├── aws-sdk-ec2 v0.37.0 (*)
│   ├── aws-sdk-ecr v0.37.0 (*)
│   ├── aws-sdk-ecs v0.37.0 (*)
│   ├── aws-sdk-efs v0.37.0 (*)
│   ├── aws-sdk-eks v0.37.0 (*)
│   ├── aws-sdk-elasticache v0.37.0 (*)
│   ├── aws-sdk-elasticloadbalancing v0.37.0 (*)
│   ├── aws-sdk-elasticloadbalancingv2 v0.37.0 (*)
│   ├── aws-sdk-emr v0.37.0 (*)
│   ├── aws-sdk-fsx v0.37.0 (*)
│   ├── aws-sdk-guardduty v0.37.0 (*)
│   ├── aws-sdk-iam v0.37.0 (*)
│   ├── aws-sdk-kms v0.37.0 (*)
│   ├── aws-sdk-lambda v0.37.0 (*)
│   ├── aws-sdk-networkfirewall v0.37.0 (*)
│   ├── aws-sdk-opensearch v0.37.0 (*)
│   ├── aws-sdk-organizations v0.37.0 (*)
│   ├── aws-sdk-rds v0.37.0 (*)
│   ├── aws-sdk-redshift v0.37.0 (*)
│   ├── aws-sdk-route53 v0.37.0 (*)
│   ├── aws-sdk-route53domains v0.37.0 (*)
│   ├── aws-sdk-s3 v0.37.0 (*)
│   ├── aws-sdk-s3control v0.37.0 (*)
│   ├── aws-sdk-securityhub v0.37.0 (*)
│   ├── aws-sdk-servicequotas v0.37.0 (*)
│   ├── aws-sdk-sqs v0.37.0 (*)
│   ├── aws-sdk-sts v0.37.0 (*)
│   ├── aws-sdk-wafv2 v0.37.0 (*)
│   ├── aws-smithy-async v0.100.0 (*)
│   ├── aws-smithy-types-convert v0.58.0 (*)
│   ├── aws-types v0.100.0 (*)
~~~

Environment details (OS name and version, etc.)

stable-aarch64-apple-darwin

Logs

No response

@celaus celaus added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Nov 17, 2023
@celaus celaus changed the title Multiplication overflow in smithy runtime Multiplication overflow in smithy runtime exponential backoff Nov 17, 2023
@rcoh rcoh added the p1 This is a high priority issue label Nov 17, 2023
@rcoh
Copy link
Contributor

rcoh commented Nov 17, 2023

we'll definitely fix the overflow but I'm a little concerned there is another bug somewhere. Are customizing the amount of retries that are allowed, e.g.? I think the default cap is 3 so I'm not sure how we'd hit overflow there.

Any other logs you have would be very helpful.

From my quick test, we had to get to 32 retry attempts before hitting this

@celaus
Copy link
Author

celaus commented Nov 17, 2023

Haha yes, I am configuring 100 retries - although for no specific reason, I don't think we have ever hit that when not running into rate limiting.

@rcoh
Copy link
Contributor

rcoh commented Nov 17, 2023

hahaha please don't do that! I think that's very unlikely to do what you want ;-)

Fix is here: smithy-lang/smithy-rs#3229

@ysaito1001 ysaito1001 added pending-release This issue will be fixed by an approved PR that hasn't been released yet. and removed needs-triage This issue or PR still needs to be triaged. labels Nov 20, 2023
@celaus
Copy link
Author

celaus commented Nov 22, 2023

according to your changelog this fix has been in 0.38 so I'll close it. 👍

@celaus celaus closed this as completed Nov 22, 2023
Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. p1 This is a high priority issue pending-release This issue will be fixed by an approved PR that hasn't been released yet.
Projects
None yet
Development

No branches or pull requests

3 participants