Giter VIP home page Giter VIP logo

aws-crt-swift's Introduction

aws-crt-swift's People

Contributors

amazon-auto avatar dayaffe avatar epau avatar ganeshnj avatar graebm avatar jbelkins avatar jmklix avatar jonathanhenson avatar kellertk avatar kneekey23 avatar sichanyoo avatar waahm7 avatar wooj2 avatar xiazhvera avatar yasminetalby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-crt-swift's Issues

Support TLS 1.3 on Apple platforms

Describe the feature

Support for TLS 1.3 on Apple

Use Case

Support for TLS 1.3

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Chunked signer

Describe the feature

Event stream messages are signed one by one hence Swift SDK needs a chunked signer.

Use Case

Event Streams

Proposed Solution

There is already signRequest method in Signer

    public static func signRequest(
        request: HTTPRequestBase,
        config: SigningConfig,
        allocator: Allocator = defaultAllocator) async throws -> HTTPRequestBase {

The new API should be something like

    func signChunk(chunk: Data, previousSignature: Data, config: SigningConfig) -> Data {
        
    }
}

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Process Credentials Provider

Describe the feature

Follows the extensible-creds SEP.

Create a credentials provider that can source credentials from an external process.

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Async IStreamable support

Describe the feature

IStreamable protocol currently seeks and writes synchronously which works for pure request/response but same model can't be applied to event streaming where events come asynchronously.

Use Case

Event Streams.

Proposed Solution

Adapt IStreamble to async conventions

public protocol IStreamable {
    func length() throws -> UInt64
    func seek(offset: Int64, streamSeekType: StreamSeekType) throws
    func read(buffer: UnsafeMutableBufferPointer<UInt8>) async throws -> Int?
}

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Improve Code Documentation

Describe the issue

  • Add missing documentation for APIs
  • Document which objects/struct should be reused as much as possible.

Links

N/A

Memory crash in allocator.c

Originally posted in aws-c-common#888.

While running a dev app for AWS S3 operations with the new Swift SDK I am experiencing a crash which ends on this line.

#8 0x0000000102c44b78 in s_default_free at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/allocator.c:68

I prepared a dev app for running all of these operations. It can run successfully but when it runs with more files it does not work concurrently and seems to get into this bad state more often that way.

Below is the full stack trace. It crashes at the following line in Thread 14.

Thread 1 Queue : com.apple.main-thread (serial)
#0	0x00000001c9975050 in mach_msg_trap ()
#1	0x00000001c99753f0 in mach_msg ()
#2	0x000000018034f810 in __CFRunLoopServiceMachPort ()
#3	0x0000000180349d24 in __CFRunLoopRun ()
#4	0x00000001803493a8 in CFRunLoopRunSpecific ()
#5	0x000000018c03c5ec in GSEventRunModal ()
#6	0x0000000184d937ac in -[UIApplication _run] ()
#7	0x0000000184d982e8 in UIApplicationMain ()
#8	0x00000001b99bc7f4 in closure #1 in KitRendererCommon(_:) ()
#9	0x00000001b99bc750 in runApp<τ_0_0>(_:) ()
#10	0x00000001b94124f4 in static App.main() ()
#11	0x00000001027a3194 in static StorageApp.$main() at PROJECT_DIR/Storage/Storage/StorageApp.swift:11
#12	0x00000001027a3234 in main ()
#13	0x0000000107ef5ca0 in start_sim ()
#14	0x0000000107c3d0f4 in start ()
Thread 4#0	0x00000001c9976c8c in __ulock_wait ()
#1	0x00000001c99c0418 in _os_unfair_lock_lock_slow ()
#2	0x00000001801682d4 in tiny_malloc_should_clear ()
#3	0x000000018014ffe8 in szone_malloc_should_clear ()
#4	0x000000018015f38c in _malloc_zone_calloc ()
#5	0x0000000180189110 in class_createInstance ()
#6	0x0000000107f78af0 in _os_object_alloc_realized ()
#7	0x0000000107f969e8 in dispatch_mach_msg_create ()
#8	0x0000000107f92bd8 in _dispatch_mach_merge_msg ()
#9	0x0000000107f9b69c in _dispatch_event_loop_merge ()
#10	0x0000000107f8d4d8 in _dispatch_workloop_worker_thread ()
#11	0x00000001c99caad4 in _pthread_wqthread ()
Thread 5 Queue : com.apple.NSURLSession-delegate (serial)
#0	0x00000001c9976c8c in __ulock_wait ()
#1	0x00000001c99c0418 in _os_unfair_lock_lock_slow ()
#2	0x00000001801682d4 in tiny_malloc_should_clear ()
#3	0x000000018014ffe8 in szone_malloc_should_clear ()
#4	0x000000018015f280 in _malloc_zone_malloc ()
#5	0x0000000180391be8 in __CFStrAllocateMutableContents ()
#6	0x00000001803913d0 in __CFStringChangeSizeMultiple ()
#7	0x000000018038b844 in CFStringAppendCharacters ()
#8	0x00000001803dc630 in _CFURLComponentsSetQueryItemsInternal ()
#9	0x0000000180845bd4 in -[__NSConcreteURLComponents setQueryItems:] ()
#10	0x00000001b63561f0 in specialized URLComponents.queryItems.setter ()
#11	0x00000001b6351624 in URLComponents.queryItems.setter ()
#12	0x0000000102b926f0 in Endpoint.url.getter at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Endpoint.swift:36
#13	0x0000000102b94850 in CRTClientEngine.createConnectionPool(endpoint:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/CRT/CRTClientEngine.swift:53
#14	0x0000000102b9547c in CRTClientEngine.getOrCreateConnectionPool(endpoint:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/CRT/CRTClientEngine.swift:61
#15	0x0000000102b95864 in CRTClientEngine.execute(request:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/CRT/CRTClientEngine.swift:76
#16	0x0000000102b98188 in protocol witness for HttpClientEngine.execute(request:) in conformance CRTClientEngine ()
#17	0x0000000102bb03f4 in ClientHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/SdkHttpClient.swift:37
#18	0x0000000102bb077c in protocol witness for Handler.handle(context:input:) in conformance ClientHandler<τ_0_0, τ_0_1> ()
#19	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#20	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#21	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#22	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#23	0x0000000102b8cad8 in DeserializeStepHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/Steps/DeserializeStep.swift:41
#24	0x0000000102b8cb20 in protocol witness for Handler.handle(context:input:) in conformance DeserializeStepHandler<τ_0_0, τ_0_1, τ_0_2> ()
#25	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#26	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#27	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#28	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#29	0x0000000102ba73ec in DeserializeMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/DeserializeMiddleware.swift:19
#30	0x0000000102ba7ea4 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance DeserializeMiddleware<τ_0_0, τ_0_1> ()
#31	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#32	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#33	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#34	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#35	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#36	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#37	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#38	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#39	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#40	0x0000000102ba9a00 in LoggerMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/LoggerMiddleware.swift:38
#41	0x0000000102baa190 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance LoggerMiddleware<τ_0_0, τ_0_1> ()
#42	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#43	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#44	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#45	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#46	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#47	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#48	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#49	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#50	0x0000000102b83f18 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/MiddlewareStep.swift:47
#51	0x0000000102b84428 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#52	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#53	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#54	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#55	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#56	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#57	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#58	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#59	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#60	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#61	0x0000000102b8e0d4 in FinalizeStepHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/Steps/FinalizeStep.swift:40
#62	0x0000000102b8e150 in protocol witness for Handler.handle(context:input:) in conformance FinalizeStepHandler<τ_0_0, τ_0_1, τ_0_2> ()
#63	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#64	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#65	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#66	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#67	0x0000000102b59d50 in RetryerMiddleware.tryRequest<τ_0_0>(token:errorType:partitionId:context:input:next:) at PROJECT_DIR/Local/aws-sdk-swift/AWSClientRuntime/Sources/Middlewares/RetryerMiddleware.swift:56
#68	0x0000000102b59710 in RetryerMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/aws-sdk-swift/AWSClientRuntime/Sources/Middlewares/RetryerMiddleware.swift:36
#69	0x0000000102b5ac6c in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance RetryerMiddleware<τ_0_0, τ_0_1> ()
#70	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#71	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#72	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#73	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#74	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#75	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#76	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#77	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#78	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#79	0x0000000102b5d864 in SigV4Middleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/aws-sdk-swift/AWSClientRuntime/Sources/Middlewares/SigV4Middleware.swift:75
#80	0x0000000102b5e410 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance SigV4Middleware<τ_0_0, τ_0_1> ()
#81	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#82	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#83	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#84	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#85	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#86	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#87	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#88	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#89	0x0000000102b83f18 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/MiddlewareStep.swift:47
#90	0x0000000102b84428 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#91	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#92	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#93	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#94	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#95	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#96	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#97	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#98	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#99	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#100	0x0000000102b8c448 in BuildStepHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/Steps/BuildStep.swift:39
#101	0x0000000102b8c4bc in protocol witness for Handler.handle(context:input:) in conformance BuildStepHandler<τ_0_0, τ_0_1, τ_0_2> ()
#102	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#103	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#104	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#105	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#106	0x0000000102b586c4 in EndpointResolverMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/aws-sdk-swift/AWSClientRuntime/Sources/Middlewares/EndpointResolverMiddleware.swift:62
#107	0x0000000102b58afc in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance EndpointResolverMiddleware<τ_0_0, τ_0_1> ()
#108	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#109	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#110	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#111	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#112	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#113	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#114	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#115	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#116	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#117	0x0000000102b5f53c in UserAgentMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/aws-sdk-swift/AWSClientRuntime/Sources/Middlewares/UserAgentMiddleware.swift:35
#118	0x0000000102b5f638 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance UserAgentMiddleware<τ_0_0, τ_0_1> ()
#119	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#120	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#121	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#122	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#123	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#124	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#125	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#126	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#127	0x0000000102b83f18 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/MiddlewareStep.swift:47
#128	0x0000000102b84428 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#129	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#130	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#131	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#132	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#133	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#134	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#135	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#136	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#137	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#138	0x0000000102b8ef88 in SerializeStepHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/Steps/SerializeStep.swift:40
#139	0x0000000102b8eff4 in protocol witness for Handler.handle(context:input:) in conformance SerializeStepHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#140	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#141	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#142	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#143	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#144	0x0000000102babcf4 in QueryItemMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/QueryItemMiddleware.swift:27
#145	0x0000000102babe0c in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance QueryItemMiddleware<τ_0_0, τ_0_1, τ_0_2> ()
#146	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#147	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#148	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#149	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#150	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#151	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#152	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#153	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#154	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#155	0x0000000102ba8d20 in HeaderMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/HeaderMiddleware.swift:25
#156	0x0000000102ba8e38 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance HeaderMiddleware<τ_0_0, τ_0_1, τ_0_2> ()
#157	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#158	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#159	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#160	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#161	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#162	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#163	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#164	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#165	0x0000000102b83f18 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/MiddlewareStep.swift:47
#166	0x0000000102b84428 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#167	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#168	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#169	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#170	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#171	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#172	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#173	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#174	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#175	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#176	0x0000000102b8e838 in InitializeStepHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/Steps/InitializeStep.swift:41
#177	0x0000000102b8e908 in protocol witness for Handler.handle(context:input:) in conformance InitializeStepHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#178	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#179	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#180	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#181	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#182	0x0000000102badcf8 in URLHostMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/URLHostMiddleware.swift:38
#183	0x0000000102bade38 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance URLHostMiddleware<τ_0_0, τ_0_1, τ_0_2> ()
#184	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#185	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#186	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#187	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#188	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#189	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#190	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#191	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#192	0x0000000102b7fd74 in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#193	0x0000000102baedd0 in URLPathMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Networking/Http/Middlewares/URLPathMiddleware.swift:35
#194	0x0000000102baf144 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance URLPathMiddleware<τ_0_0, τ_0_1, τ_0_2> ()
#195	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#196	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#197	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#198	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#199	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#200	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#201	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#202	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#203	0x0000000102b83f18 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/MiddlewareStep.swift:47
#204	0x0000000102b84428 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#205	0x0000000102b809c0 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:19
#206	0x0000000102b80ac0 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#207	0x0000000102b80f14 in AnyMiddleware.handle<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyMiddleware.swift:38
#208	0x0000000102b82c00 in ComposedHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/ComposedHandler.swift:29
#209	0x0000000102b82cd4 in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2, τ_0_3> ()
#210	0x0000000102b7fb84 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:14
#211	0x0000000102b7fc7c in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#212	0x0000000102b7fd0c in AnyHandler.handle(context:input:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/AnyHandler.swift:18
#213	0x0000000102b86aec in OperationStack.handleMiddleware<τ_0_0>(context:input:next:) at PROJECT_DIR/Local/smithy-swift/Packages/ClientRuntime/Sources/Middleware/OperationStack.swift:48
#214	0x0000000103712d2c in S3Client.abortMultipartUpload(input:completion:) at PROJECT_DIR/Local/aws-sdk-swift/release/AWSS3/S3Client.swift:159
#215	0x00000001036457d4 in AWSS3Adapter.abortMultipartUpload(_:completion:) at PROJECT_DIR/Local/PACKAGE/SUBDIR/Storage/AWSS3StoragePlugin/Dependency/AWSS3Adapter.swift:132
#216	0x000000010364604c in protocol witness for AWSS3Behavior.abortMultipartUpload(_:completion:) in conformance AWSS3Adapter ()
#217	0x0000000103690000 in DefaultStorageMultipartUploadClient.abortMultipartUpload(uploadId:) at PROJECT_DIR/Local/PACKAGE/SUBDIR/Storage/AWSS3StoragePlugin/Support/Internal/StorageMultipartUploadClient.swift:157
#218	0x000000010369099c in protocol witness for StorageMultipartUploadClient.abortMultipartUpload(uploadId:) in conformance DefaultStorageMultipartUploadClient ()
#219	0x00000001036969f4 in StorageMultipartUploadSession.handle(uploadPartEvent:) at PROJECT_DIR/Local/PACKAGE/SUBDIR/Storage/AWSS3StoragePlugin/Support/Internal/StorageMultipartUploadSession.swift:262
#220	0x00000001036a4c44 in StorageServiceSessionDelegate.urlSession(_:task:didCompleteWithError:) at PROJECT_DIR/Local/PACKAGE/SUBDIR/Storage/AWSS3StoragePlugin/Support/Internal/StorageServiceSessionDelegate.swift:117
#221	0x00000001036a5598 in @objc StorageServiceSessionDelegate.urlSession(_:task:didCompleteWithError:) ()
#222	0x0000000183c2c628 in ___lldb_unnamed_symbol291$$CFNetwork ()
#223	0x0000000107f77e94 in _dispatch_call_block_and_release ()
#224	0x0000000107f79694 in _dispatch_client_callout ()
#225	0x0000000107f80870 in _dispatch_lane_serial_drain ()
#226	0x0000000107f8156c in _dispatch_lane_invoke ()
#227	0x0000000107f8d664 in _dispatch_workloop_worker_thread ()
#228	0x00000001c99caad4 in _pthread_wqthread ()
Thread 7#0	0x00000001c9976b9c in __workq_kernreturn ()
com.apple.uikit.eventfetch-thread (8)#0	0x00000001c9975050 in mach_msg_trap ()
#1	0x00000001c99753f0 in mach_msg ()
#2	0x000000018034f810 in __CFRunLoopServiceMachPort ()
#3	0x0000000180349d24 in __CFRunLoopRun ()
#4	0x00000001803493a8 in CFRunLoopRunSpecific ()
#5	0x0000000180811e14 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#6	0x00000001808120cc in -[NSRunLoop(NSRunLoop) runUntilDate:] ()
#7	0x0000000184e47b64 in -[UIEventFetcher threadMain] ()
#8	0x000000018083b97c in __NSThread__start__ ()
#9	0x00000001c99ce68c in _pthread_start ()
Thread 11#0	0x00000001c99784c4 in __psynch_cvwait ()
#1	0x00000001c99cec44 in _pthread_cond_wait ()
#2	0x0000000102c68c10 in aws_condition_variable_wait at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/posix/condition_variable.c:74
#3	0x0000000102c56d08 in aws_condition_variable_wait_pred at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/condition_variable.c:16
#4	0x0000000102c62608 in s_background_thread_writer at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/log_channel.c:144
#5	0x0000000102c6cb74 in thread_fn at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/posix/thread.c:137
#6	0x00000001c99ce68c in _pthread_start ()
Thread 12#0	0x00000001c997aa64 in kevent ()
#1	0x0000000102c8145c in s_event_thread_main at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-io/source/bsd/kqueue_event_loop.c:854
#2	0x0000000102c6cb74 in thread_fn at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/posix/thread.c:137
#3	0x00000001c99ce68c in _pthread_start ()
Thread 14#0	0x00000001800fe480 in __abort ()
#1	0x00000001800fe3e4 in abort ()
#2	0x000000018016b6b4 in malloc_vreport ()
#3	0x000000018016b928 in malloc_zone_error ()
#4	0x000000018016b22c in free_list_checksum_botch ()
#5	0x00000001801667d8 in tiny_free_list_remove_ptr ()
#6	0x0000000180167794 in tiny_free_no_lock ()
#7	0x0000000180168acc in free_tiny ()
#8	0x0000000102c44b78 in s_default_free at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/allocator.c:68
#9	0x0000000102c44480 in aws_mem_release at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/allocator.c:213
#10	0x0000000102c719dc in aws_string_destroy at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/string.c:229
#11	0x0000000102c9527c in aws_host_address_clean_up at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-io/source/host_resolver.c:63
#12	0x0000000102c99960 in s_clear_address_list at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-io/source/host_resolver.c:362
#13	0x0000000102c98118 in resolver_thread_fn at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-io/source/host_resolver.c:1059
#14	0x0000000102c6cb74 in thread_fn at /Users/stehlib/Library/Developer/Xcode/DerivedData/Storage-afndvptmhwafydajhugztfldaqly/SourcePackages/checkouts/aws-crt-swift/aws-common-runtime/aws-c-common/source/posix/thread.c:137
#15	0x00000001c99ce68c in _pthread_start ()
Thread 17#0	0x0000000000000000 in 0x00000000 ()

Crash occurring when trying to force unwrap possible nil response header

Describe the bug

A crash is occurring when trying to verify the users email with a verification code with amplify.

The toString() function below in Utilities.swift crashes due to possible force unwrapping when nil

extension aws_byte_cursor {
    func toString() -> String {
        if self.len == 0 {
            return ""
        }

        let data = Data(bytesNoCopy: self.ptr, count: self.len, deallocator: .none)
        return String(data: data, encoding: .utf8)!
    }

    func toOptionalString() -> String? {
        if self.len == 0 { return nil }
        let data = Data(bytesNoCopy: self.ptr, count: self.len, deallocator: .none)
        return String(data: data, encoding: .utf8)!
    }
}

Expected Behavior

No crash

Current Behavior

Thread 8 Crashed:
0   App                             0x101570abc         [inlined] value
1   App                             0x101570abc         [inlined] aws_byte_cursor.toString (Utilities.swift:160)
2   App                             0x101570abc         [inlined] HTTPHeader.init (HTTPHeader.swift:18)
3   App                             0x101570abc         [inlined] HTTPHeader.__allocating_init (HTTPHeader.swift:19)
4   App                             0x101570abc         [inlined] onResponseHeaders (HTTPStreamCallbackCore.swift:56)
5   App                             0x101570abc         [inlined] Sequence.forEach
6   App                             0x101570abc         onResponseHeaders (HTTPStreamCallbackCore.swift:56)
7   App                             0x101570960         [inlined] aws_byte_cursor.toString (Utilities.swift:160)
8   App                             0x101570960         [inlined] HTTPHeader.init (HTTPHeader.swift:18)
9   App                             0x101570960         [inlined] HTTPHeader.__allocating_init (HTTPHeader.swift:19)
10  App                             0x101570960         [inlined] onResponseHeaders (HTTPStreamCallbackCore.swift:56)
11  App                             0x101570960         [inlined] Sequence.forEach
12  App                             0x101570960         onResponseHeaders (HTTPStreamCallbackCore.swift:56)
13  App                             0x1015bb048         s_decoder_on_header (h1_connection.c:1156)
14  App                             0x1015bc8a4         s_linestate_header (h1_decoder.c:534)
15  App                             0x1015bc1f0         s_state_getline (h1_decoder.c:126)
16  App                             0x1015bb9a4         aws_h1_decode (h1_decoder.c:724)
17  App                             0x1015b91e4         [inlined] s_try_process_next_stream_read_message (h1_connection.c:1863)
18  App                             0x1015b91e4         aws_h1_connection_try_process_read_messages (h1_connection.c:1755)
19  App                             0x1015ba31c         s_handler_process_read_message (h1_connection.c:1721)
20  App                             0x1015a2a04         s_process_read_message (secure_transport_tls_channel_handler.c:661)
21  App                             0x1015b11fc         s_do_read (socket_channel_handler.c:164)
22  App                             0x1015b0a88         s_on_readable_notification (socket_channel_handler.c:221)
23  App                             0x1015af7ec         s_on_socket_io_event (socket.c:1697)
24  App                             0x10159c744         aws_event_loop_thread (kqueue_event_loop.c:932)
25  App                             0x1015917bc         thread_fn (thread.c:177)
26  libsystem_pthread.dylib         0x40381a4d0         _pthread_start

Reproduction Steps

I personally have not been able to replicate this issue, but has been occurring with our users according to our logs.

Possible Solution

Safely unwrap possible nil response headers, e.g. use a ternary operator to return an empty string

Additional Information/Context

No response

aws-crt-swift version used

0.17.0 via amplify Swift

Compiler and Version used

XCode 15.0, Swift 5

Operating System and version

MacOS 13.5

Refactor Enums

Describe the feature

We need to refactor enums to have sensible defaults, or make them throwable.

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Specialize HTTP client for Apple platform to fix the connection issue while running in the background

Describe the feature

Follow up to awslabs/aws-sdk-swift#1086
Enable the CRT HTTP client to continue handling events in the background on Apple platform clients.

The standard event handling mechanism used by the CRT HTTP client (kqueue) is not fully supported on Apple platforms (i.e. native iOS/iPadOS, tvOS, macOS applications). Using the CRT HTTP client as-is on Apple platforms will result in broken connections if the application is not in the active state for the entire duration of the connection; this is a severe limitation for most use cases, especially for mobile devices where connection speeds are limited and users are restricted to one foreground app at a time.

To remedy this limitation, an alternative event handling mechanism ("dispatch queues") must be used on Apple platforms, since dispatch queues continue to handle events as expected throughout the application lifecycle. The CRT HTTP client will be modified to use the correct event handling mechanism when building for the platforms that require it.

Use Case

To enable efficient, background HTTP communications via the AWS SDK for Swift.

Proposed Solution

Use Apple platform-native event handling on Apple platforms, instead of CRT's current event handling which is based on POSIX threads.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Add support for writeChunk

Describe the feature

Add support for writeChunk similar to the Java's CRT. This method should allow us to use it for either chunked encoding or aws-chunked encoding which adds the ability to specify a checksum per block.

Use Case

Used for chunked encoding and for flexible checksums

Proposed Solution

Bind out the implementation that already exists in C to the Swift CRT.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Add Swift support for flexible checksums

Describe the feature

As per Flexible Checksums SEP, we need to support below checksum algorithms and need support from CRT for it.

CRC32C
CRC32
SHA256
SHA1

I believe all of these are already implemented in CRT, we need Swift bindings for these. I believe SHA256 already has Swift bindings, need work for the others.

Use Case

please refer to flexible checksum SEP

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Drop Swift 5.5 & 5.6 support

Describe the feature

Remove support for Swift 5.5 & 5.6 as aws-sdk-swift has removed support for it.

Use Case

awslabs/aws-sdk-swift#1010

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

posix_memalign failed to allocate memory when calling SDK with expired or missing credentials

Describe the bug

Please refer to issue below for details
awslabs/aws-sdk-swift#876

Expected Behavior

Please refer to issue below for details
awslabs/aws-sdk-swift#876

Current Behavior

Please refer to issue below for details
awslabs/aws-sdk-swift#876

Reproduction Steps

Please refer to issue below for details
awslabs/aws-sdk-swift#876

Possible Solution

No response

Additional Information/Context

No response

aws-crt-swift version used

N/A

Compiler and Version used

N/A

Operating System and version

N/A

SSO Credential Provider

Describe the feature

--/seps/accepted/shared/sso-provider.md

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Expose additional API for creating a STS Web Identity Credential Provider

Describe the feature

The SDKs want to allow customers to explicitly configure any property that can be configured by an environment variable or by a configuration file. To allow for this, we need an API that takes each property as an input, optionally and defaults to nil. If the value is nil, then CRT should resolve the value as they do currently.

    public static func `stsWebIdentity`(
        bootstrap: ClientBootstrap,
        tlsContext: TLSContext,
        fileBasedConfiguration: FileBasedConfiguration,
        region: String? = nil,
        roleARN: String? = nil,
        roleSessionName: String? = nil,
        tokenFilePath: String? = nil,
        shutdownCallback: ShutdownCallback? = nil,
        allocator: Allocator = defaultAllocator) -> Self {

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Role-based credentials defined in config/credentials files fail to resolve

Describe the bug

Role-based credentials defined in the config/credentials files should resolve correctly.

Example config file

[default]
role_arn = <some_arn>
source_profile = arntestcreds

[profile arntestcreds]
aws_access_key_id = <some_access_key_id>
aws_secret_access_key = <some_secret_access_key>

Example Code - A

let provider = try AwsCommonRuntimeKit.CredentialsProvider(source: .profile())

This fails with the following error: AwsCommonRuntimeKit.CRTError(code: 34, message: "Unknown Error Code", name: "Unknown Error Code")

Additionally, a credential provider with the profile source also fails when specifying a specific profile that contains the role-based credentials.

Example Code - B

    let provider = try AwsCommonRuntimeKit.CredentialsProvider(source: .defaultChain(bootstrap: .init(
        eventLoopGroup: SDKDefaultIO.shared.eventLoopGroup,
        hostResolver: SDKDefaultIO.shared.hostResolver
    )))
    
    let creds = try await provider.getCredentials()

This fails with the following error: AwsCommonRuntimeKit.CRTError(code: 6153, message: "Valid credentials could not be sourced by the IMDS provider", name: "AWS_AUTH_CREDENTIALS_PROVIDER_IMDS_SOURCE_FAILURE")

Related SEPs

--/seps/accepted/shared/assume-role.md
--/seps/accepted/shared/configuration-file.md

Expected Behavior

N/A

Current Behavior

N/A

Reproduction Steps

N/A

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

0.5.2

Compiler and Version used

Xcode 14.0.1

Operating System and version

12.6.1

Event Steaming encoding decoding

Describe the feature

Bindings for encode and decode messages.

Use Case

smithy-lang/smithy-swift#460

CRT already has support for event stream, creating binding is preferred to not create duplication in Swift.

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Environment Configured Credential Chains

Describe the feature

--/seps/accepted/shared/environment-chain.md

Use Case

AWS_CREDENTIAL_PROVIDER_CHAIN env var configured credentials chain.

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Separate retry backoff calculation from retry scheduling

Describe the feature

Smithy Reference Architecture defines the RetryBackoffStrategy type, which (translated to Swift) is:

public protocol RetryBackoffStrategy {
    func computeNextBackoffDelay(attempt: Int) -> TimeInterval
}

Calling the computeNextBackoffDelay(attempt:) method on this protocol allows a client to determine the delay to wait before performing a retry. The client can then use this delay to schedule retry using the scheduling mechanism and HTTP client of their choice.

Looking at the CRT implementation of retry, aws-c-io does not expose such a method, even though it does calculate the needed delay internally. Instead, it appears that the C function aws_retry_strategy_schedule_retry is provided, which calculates the delay and schedules the retry, after the appropriate delay, on CRT's own event loop. (aws-crt-swift uses this C method in its scheduleRetry(token:errorType:) method for its own public retry interface.)

Please provide methods for determining retry backoff delay separate from the methods for scheduling retry; this will assist with compliance with the Smithy Reference Architecture and with future modularization work on the AWS SDK for Swift.

Use Case

Allows for use of CRT's retry backoff logic with non-CRT HTTP clients.

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

S2N prevents building on Linux

Describe the bug

Building on Linux distro throw an error caused by aws-common-runtime/s2n submodule.
This error does not occur on macOS.

Expected Behavior

Building should be successful on Linux distro

Current Behavior

error: 'src': target 'S2N' has invalid header layout: umbrella header found at '/src/aws-common-runtime/s2n/api/S2N.h', but directories exist next to it: /src/aws-common-runtime/s2n/api/unstable; consider removing them

Reproduction Steps

On Linux distro, clone project with submodule:

git clone --recurse-submodules https://github.com/awslabs/aws-crt-swift.git

Build project:

swift build

Possible Solution

No response

Additional Information/Context

S2N submodule version: v1.3.35

AWS CRT SWIFT version used

0.6.1

Compiler and Version used

Swift 5.7

Operating System and version

Amazon Linux 2 (4.14), Ubuntu 22.04

Concurrent SES and DynamoDB use in Lambda causes Fatal error: Tls Context failed to create.

Describe the bug

Bug issue #1077 in Swift SDK project mentions an exception that is thrown from TLSContext constructor in aws-crt-swift/Source/AwsCommonRuntimeKit/io/TLSContext.swift. The bug is caught in smithy-swift/Sources/ClientRuntime/Networking/Http/CRT/SDKDefaultIO.swift. The error seems to be arising from CRT side, hence submission of this issue.

Expected Behavior

TLS Context should be successfully created.

Current Behavior

Fatal error is thrown when creating TLS context.

Reproduction Steps

Details in issue #1077

Possible Solution

No response

Additional Information/Context

The function is using runtime version: provided:al2.v20

aws-crt-swift version used

0.12.0

Compiler and Version used

Swift 5.7

Operating System and version

Built for arm64 using the swift:5.7-amazonlinux2 image

Access to private Apple APIs prevents acceptance to App Store

Describe the bug

The following ticket was filed by a customer on AWS SDK for Swift: awslabs/aws-sdk-swift#1204

Since the source of this issue is likely cryptography components in aws-crt-swift, I am filing this ticket with the original report from the customer.


Describe the bug

We are using the AWS SDK to access an S3 bucket on our iOS app. Since the latest Xcode update we are getting a "Non-public API usage" error when we try to upload our iOS app to Test Flight:

ITMS-90338: Non-public API usage - The app references non-public symbols in {PROJECT_NAME}: _CCCryptorGCMAddAAD, _CCCryptorGCMAddIV, _CCCryptorGCMFinal, _CCCryptorGCMFinalize, _CCCryptorGCMSetIV. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

We have identified that after removing the AWS SDK from our app, we stopped getting this warning.

Expected Behavior

The AWS SDK shouldn't use any private Apple APIs to apps can be submitted to Test Flight and the App Store.

Current Behavior

We are get the following error when we submit our app to Test Flight:

ITMS-90338: Non-public API usage - The app references non-public symbols in {PROJECT_NAME}: _CCCryptorGCMAddAAD, _CCCryptorGCMAddIV, _CCCryptorGCMFinal, _CCCryptorGCMFinalize, _CCCryptorGCMSetIV. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Here is a screenshot of the Xcode search for one of the restricted APIs:
Screenshot 2023-10-30 at 17 01 56

Reproduction Steps

Integrate the SDK into any iOS app and try to access an object from a private S3 bucket (using IAM credentials).

Possible Solution

No response

Additional Information/Context

No response

AWS SWIFT SDK version used

0.28.0

Compiler and Version used

Xcode 15.0, swift-driver version: 1.87.1 Apple Swift version 5.9

Operating System and version

iOS, any version

Expected Behavior

App including aws-sdk-swift and its dependencies should be accepted for upload by App Store Connect without warning messages or errors.

Current Behavior

App was accepted by App Store Connect, but with the warning above, which would cause rejection if the app were to then be submitted for review.

Reproduction Steps

Upload app to App Store Connect
Observe warning messages generated when upload is processed

(SDK team will provide support to retest this when API changes are made)

Possible Solution

Use only public APIs on Apple frameworks

Additional Information/Context

No response

aws-crt-swift version used

0.13.0

Compiler and Version used

Xcode 15.0 / Swift 5.9

Operating System and version

iOS (any)


CRTAWSRetryToken is calling aws_retry_token_release on aws_retry_token after it is released

Below are the details I collected as a result of a crash that occurs sporadically. Memory is being released and later accessed resulting in a runtime exception.

==30709==ERROR: AddressSanitizer: heap-use-after-free on address 0x00013c542530 at pc 0x000105cabf58 bp 0x00016b4728b0 sp 0x00016b4728a8
WRITE of size 8 at 0x00013c542530 thread T6
    #0 0x105cabf54 in aws_atomic_fetch_sub_explicit+0x1b4 (Storage:arm64+0x100fdbf54)
    #1 0x105cac2c0 in aws_retry_token_release+0x68 (Storage:arm64+0x100fdc2c0)
    #2 0x105b637e4 in CRTAWSRetryToken.deinit+0x1bc (Storage:arm64+0x100e937e4)
    #3 0x105b639c0 in CRTAWSRetryToken.__deallocating_deinit+0x150 (Storage:arm64+0x100e939c0)
    #4 0x111f2a550 in _swift_release_dealloc+0x18 (libswiftCore.dylib:arm64+0x2d2550)
    #5 0x1058a6470 in (2) await resume partial function for RetryerMiddleware.handle<A>(context:input:next:)+0x2e0 (Storage:arm64+0x100bd6470)
    #6 0x10f225e14 in swift::runJobInEstablishedExecutorContext(swift::Job*)+0x80 (libswift_Concurrency.dylib:arm64+0x29e14)

I've set breakpoints and logged the pointer for aws_retry_token when it is released. It shows the same address. Below 0x160604700 is the same pointer address which is released many times.

👋 signRequestToCRT
👋 acquiring token 0x160604700
👋 releasing in aws_retry_token_release 0x160604700
👋 releasing in aws_retry_token_release 0x160604800
👋 releaseToken 2 0x160604700
👋 releasing in aws_retry_token_release 0x160604700
👋 releasing in aws_retry_token_release 0x160604800
👋 CRTAWSRetryToken deinit 0x160604700
👋 releasing in aws_retry_token_release 0x160604700

My assumption is this value should only be released once and only after it is no longer in use, which would be the deinit function.

Provide public init for TracingAllocator that doesn't require access to default allocator

Describe the feature

Recent version 0.10.0 removed public access to the default allocator. Public initializers of CRT types now generally do not take an allocator, and use the default allocator instead. For runtime code, this is generally fine.

However, the base test case in smithy-swift uses the TracingAllocator type. The TracingAllocator is used in tests, then checked after tests complete for leaked memory. Without access to defaultAllocator, a TracingAllocator cannot be created.

Please provide a way to create a TracingAllocator that does not require access to the default allocator.

Use Case

To provide memory leak checking during tests of components built with this project.

Proposed Solution

Provide a public, convenience initializer for TracingAllocator that provides its own default allocator:

    public convenience init(level: TracingLevel, framesPerStack: Int) {
        self.init(defaultAllocator, level: level, framesPerStack: framesPerStack)
    }

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Move MD5 hashing to a Data extension and return Data type directly + rename all checksum functions with `compute` prefix

Describe the feature

  • Make the MD5 algorithm a Data extension
  • Remove the call to base64 encoding
  • Rename algorithms to add compute prefix

Use Case

Having the MD5 algorithm as a String extension can lead to issues as it would requires encoding request payloads to utf8 when there is no such restriction. Additionally, adding a base64 encoding limits usage in the SDK when we may not always want the result encoded that way.

Proposed Solution

As state above in feature description.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Expose `generateRandom` as a non-c closure

Describe the feature

Currently, generateRandom is exposed as a @convention(c) closure. Which requires this implementation detail to be exposed all the way to the consumer (due to the constraints of c closures).

Can we expose a regular swift closure here instead?

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

feat: Create Swift bindings for Cognito Credentials Provider

Describe the feature

Create Swift bindings for Cognito Credentials Provider

Use Case

In order for Swift SDK to expose Cognito Credentials Provider CRT needs to implement Swift bindings.

Proposed Solution

Implement Swift bindings for Cognito Credentials Provider

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Release Sprint 7 Changes

Describe the feature

N/A

Use Case

N/A

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AwsCommonRuntimeKit potentially needs a privacy manifest

Describe the bug

Issue originally created in the amplify-swift repo by @rowanlsnapper aws-amplify/amplify-swift#3603

I'm working through some privacy manifest issues with an app that I'm working on, and the last remaining required reason API warning that I'm still dealing with is "file timestamps" (https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278393).

I'm confident that the app itself is not directly using any of the mentioned file timestamp APIs, and I've worked through the dependencies to see which of them could be using these without proper privacy manifest declarations. I notice that AwsCommonRuntimeKit is using fstat(:,:) in a couple of C source files, and it looks like the module doesn't declare this in a privacy manifest.

Could this please be investigated and actioned if necessary.

Expected Behavior

App Store Connect does not send an email advising undeclared required reason API usage, app passes validation.

Current Behavior

Unknown

Reproduction Steps

  1. Create an app that includes amplify-swift using SPM (in my case am linking Amplify, AWSPluginsCore, and AWSCognitoAuthPlugin to my app target).
  2. Submit app to the App Store for RR API validation (can be triggered by assigning a build to a TestFlight external tester group).
  3. Observe App Store Connect sends an email advising undeclared required reason API usage.

Possible Solution

No response

Additional Information/Context

No response

aws-crt-swift version used

0.26.1

Compiler and Version used

Swift 5.7

Operating System and version

iOS

Remove Support For Per-API Allocator overriding

Describe the feature

Remove support for per api allocator overriding functionality.

Use Case

The C-Allocator is an implementation detail leaking. This unnecessarily complicates the API design and is not used by anyone.

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AwsCommonRuntimeKit.cleanUp() hangs after calling Auth APIs (signUp)

Describe the bug

GraphQL IAM requests need to be SigV4 signed, so APIPlugin will call AwsCommonRuntimeKit.initialize() on configure() and then AwsCommonRuntimeKit.cleanUp() on reset().
The code hangs on aws_auth_library_clean_up -> aws_http_library_clean_up -> aws_thread_join_all_managed -> line 113

aws_condition_variable_wait_pred(
                &s_managed_thread_signal, &s_managed_thread_lock, s_one_or_fewer_managed_threads_unjoined, NULL);

https://github.com/awslabs/aws-c-common/blob/main/source/thread_shared.c#L67

We see integration tests at
https://github.com/aws-amplify/amplify-swift/blob/main/AmplifyPlugins/API/Tests/APIHostApp/AWSAPIPluginGraphQLIAMTests/GraphQLWithIAMIntegrationTests.swift
run indefinitely.
If we comment out .cleanUp() in
https://github.com/aws-amplify/amplify-swift/blob/main/AmplifyPlugins/API/Sources/AWSAPIPlugin/AWSAPIPlugin%2BResettable.swift,
the test runs successfully.

This only happens after Auth APIs are called (signUp)

Auth.fetchAuthSession, check if isSignedIn, AwsCommonRuntimeKit.cleanUp() - ✅
Auth.signUp, AwsCommonRuntimeKit.cleanUp() - ❌

More info here : aws-amplify/amplify-swift#2120

Expected Behavior

AwsCommonRuntimeKit.cleanUp() should not hang

Current Behavior

AwsCommonRuntimeKit.cleanUp() hangs

Reproduction Steps

Integration test here :
https://github.com/aws-amplify/amplify-swift/blob/158bcb3de48bcd569ff5ee2babdad6bbeed25430/AmplifyPlugins/API/Tests/APIHostApp/AWSAPIPluginGraphQLIAMTests/GraphQLWithIAMIntegrationTests.swift#L60

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

0.3.1

Compiler and Version used

AWSSwiftSDK 0.5.0, Xcode Version 14.0 (14A309), Swift version 5.7

Operating System and version

macOS 12.6.2

SigV4a Signer

Describe the feature

--/seps/accepted/shared/mrap.md

Use Case

S3 Multi-region Access Points (MRAP)

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Use of GCD in asynchronous context

Describe the bug

GCD semaphores can cause unpredictable behavior when used from within a Swift asynchronous task.

The following was seen in the build logs when building aws-crt-swift:

/Users/runner/work/aws-sdk-swift/aws-sdk-swift/target/build/deps/aws-crt-swift/Source/Elasticurl/Elasticurl.swift:320:23: warning: instance method 'wait' is unavailable from asynchronous contexts; Await a Task handle instead; this is an error in Swift 6
            semaphore.wait()
                      ^
Dispatch.DispatchSemaphore:4:17: note: 'wait()' declared here
    public func wait()

Expected Behavior

aws-crt-swift does not use GCD semaphores within asynchronous code, and this warning is not generated

Current Behavior

The warning above (soon to be raised to an error) is generated at build time

Reproduction Steps

Build aws-crt-swift, observe build logs

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

0.9.0

Compiler and Version used

Xcode 14.3

Operating System and version

macOS 13.3.1

Host resolver bindings

Describe the feature

We need following APIs for Smithy DNS ref arch

enum HostAddressType {
    // IPv6
    AAAA,
    // IPv4
    A,
}
struct HostAddress {
    // address type (ipv6, ipv4 etc...)
    HostAddressType addressType;
    // the resolved numerical address represented as a String
    // passing this string to pton(), for example, 
    // should correctly return the numerical representation
    String address;
    // name that address was resolved from
    String hostName;
    // service record. Currently unused largely because we use Http, but this may
    // change as we add more protocols.
    String? service;
}
struct HostResolverArguments {
    // Host name to resolve
    String hostName;
    // service record. Currently unused largely because we use Http, but this may
    // change as we add more protocols.
    String? service;
}
interface HostResolver {
    // Resolves the address(es) for HostResolverArguments and returns a list of 
    // addresses with (most likely) two addresses, one AAAA and one A. Calls to this
    // function will likely alter the cache so that if there's multiple addresses, 
    // a different set will be returned on the next call.
    // implemetations don't have to explictly call getaddrinfo(), they can use
    // high level abstractions provided in their language runtimes/libraries.
    Result<List<HostAddress>> resolveAddress(HostResolverArguments args) async;
    // Reports a failure on an address so that the background cache can accomodate
    // the failure and likely not return the address until it recovers.
    void reportFailureOnAddress(HostAddress addr);
    // Empties the cache for an address.
    void purgeCache(HostResolverArguments args);
    // Empties the cache for all addresses.
    void purgeCache();
}

Use Case

Smithy Reference Architecture

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

aws-crt-swift crashes when used together with swiftc flag -enable-experimental-cxx-interop

Describe the bug

aws-cert-swift crashes when used together with swiftc flag -enable-experimental-cxx-interop.

It finds problem with using of .inl files together with C files.

image

Example error: Import of C++ module 'AwsCCommon' appears within extern "C" language linkage specification

As it is experimental feature, do not expect immediate bug fix but it would be extremely nice to be able to use swift packages together with Cpp sources.

Expected Behavior

Successful compilation.

Current Behavior

image

Reproduction Steps

add to swift compiler flags: -enable-experimental-cxx-interop

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

0.4.0

Compiler and Version used

Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)

Operating System and version

macosx13.0

Event stream message signing

There are two ways to handle the event message signing

1. All in CRT

Similar to how we handle the HTTP request message signing, CRT will take the EventStreamMessage as input, sign, update headers and return the signed message.

How does the signing work for event stream message?

Steps

  1. Encode the event stream message into a byte array (UTF-8 encoding)
  2. Create string-to-sign
AWS4-HMAC-SHA256-PAYLOAD
<timestamp>
<scope>
<previous signature>
<hash of headers that are not included in signature> // here we only have :date header
<payload hash>
  1. Sign the string-to-sign with the signing key
  2. Update the headers (:date, :chunk-signature) with the signature
  3. Create the signed EventStreamMessage with the updated headers and payload
func sign(message: EventStreamMessage, config: SigningConfig, credentials: Credentials, previousSignature: String) -> EventStreamMessage

2. By providing low level APIs

CRT will provide low level APIs to sign the event stream message.

Required APIs

func sign(signingKey: Data, stringToSign: String) -> String
func signingKey(config: SigningConfig, credentials: Credentials) -> Data

In this case, the user will have to manage creating string to sign and updating the headers with the signature.

Ideally we want to go with first option as this reduces responsibilities on the user similar to how HTTP request signing works.

That said, having access to low level APIs opens up more possibilities and use case that we might not have thought of.

Resources

Some test cases to help with validation

HTTP2

Describe the feature

Support for H2 to support event streaming.

Use Case

Event Stream.

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Disable Fallback to IMDSv1

Describe the feature

refer the below doc for details
Us8zAaNrqfHO/SEP-imds-credentials-deprecate-IMDSv1

Use Case

refer the below doc for details
Us8zAaNrqfHO/SEP-imds-credentials-deprecate-IMDSv1

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Fix `ecs` credential provider

Describe the bug

Currently the ecs credential provider accepts only non-nil parameters but only the pathAndQuery parameter should be required. Additionally, if CRT is going to read the corresponding env variables for the parameters, then even pathAndQuery should be optional.

public static func `ecs`(bootstrap: ClientBootstrap,

Expected Behavior

N/A

Current Behavior

N/A

Reproduction Steps

N/A

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

N/A

Compiler and Version used

N/A

Operating System and version

N/A

Failed to convert TimeInterval to UInt64

Describe the bug

import AWSS3

@main
public struct TestSdk {
    public private(set) var text = "Hello, World!"

    public static func main() async throws {
        print(TestSdk().text)
        
//         list buckets
        let client = try await S3Client()
        let output = try await client.listBuckets(input: ListBucketsInput())
        print(output)
    }
}

Logs

Hello, World!
2023-01-06T11:45:24-0800 info DefaultRegionProvider : [Logging] Attempting to resolve region with: BundleRegionProvider
2023-01-06T11:45:24-0800 info DefaultRegionProvider : [Logging] Attempting to resolve region with: EnvironmentRegionProvider
2023-01-06T11:45:24-0800 info DefaultRegionProvider : [Logging] Attempting to resolve region with: ProfileRegionProvider
2023-01-06T11:45:24-0800 info DefaultRegionProvider : [Logging] Resolved region with: ProfileRegionProvider
Swift/arm64e-apple-macos.swiftinterface:32169: Fatal error: Double value cannot be converted to UInt64 because the result would be greater than UInt64.max
2023-01-06 11:45:24.097253-0800 TestSdk[40406:2548657] Swift/arm64e-apple-macos.swiftinterface:32169: Fatal error: Double value cannot be converted to UInt64 because the result would be greater than UInt64.max
(lldb) 

Stacktrace

Thread 2 Queue : com.apple.root.user-initiated-qos.cooperative (concurrent)
#0	0x00000001916d432c in _swift_runtime_on_report ()
#1	0x00000001917698d8 in _swift_stdlib_reportFatalErrorInFile ()
#2	0x000000019138d1b0 in closure #1 in closure #1 in closure #1 in _assertionFailure(_:_:file:line:flags:) ()
#3	0x000000019138cef4 in closure #1 in closure #1 in _assertionFailure(_:_:file:line:flags:) ()
#4	0x000000019138ccec in closure #1 in _assertionFailure(_:_:file:line:flags:) ()
#5	0x000000019138c84c in _assertionFailure(_:_:file:line:flags:) ()
#6	0x00000001006a19b8 in Credentials.init(accessKey:secret:sessionToken:expiration:allocator:) at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-crt-swift/Source/AwsCommonRuntimeKit/auth/credentials/Credentials.swift:34
#7	0x00000001006a15b0 in Credentials.__allocating_init(accessKey:secret:sessionToken:expiration:allocator:) ()
#8	0x000000010091f8e0 in AWSCredentials.toCRTType() at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Core/AWSClientRuntime/Auth/AWSCredentials.swift:32
#9	0x000000010095f0bc in AWSSigningConfig.toCRTType() at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Core/AWSClientRuntime/Signing/AWSSigningConfig.swift:61
#10	0x000000010093f940 in SigV4Middleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Core/AWSClientRuntime/Middlewares/SigV4Middleware.swift:72
#11	0x0000000100940ac8 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance SigV4Middleware<τ_0_0, τ_0_1> ()
#12	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#13	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#14	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#15	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#16	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#17	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#18	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#19	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#20	0x00000001006295ec in MiddlewareStep.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/MiddlewareStep.swift:45
#21	0x0000000100629fb8 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2> ()
#22	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#23	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#24	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#25	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#26	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#27	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#28	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#29	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#30	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#31	0x0000000100635520 in BuildStepHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/Steps/BuildStep.swift:33
#32	0x0000000100635840 in protocol witness for Handler.handle(context:input:) in conformance BuildStepHandler<τ_0_0, τ_0_1> ()
#33	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#34	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#35	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#36	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#37	0x0000000100005700 in EndpointResolverMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Services/AWSS3/EndpointResolver.swift:165
#38	0x0000000100005ea4 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance EndpointResolverMiddleware<τ_0_0, τ_0_1> ()
#39	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#40	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#41	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#42	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#43	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#44	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#45	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#46	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#47	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#48	0x0000000100941e14 in UserAgentMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Core/AWSClientRuntime/Middlewares/UserAgentMiddleware.swift:33
#49	0x000000010094214c in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance UserAgentMiddleware<τ_0_0> ()
#50	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#51	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#52	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#53	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#54	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#55	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#56	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#57	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#58	0x00000001006295ec in MiddlewareStep.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/MiddlewareStep.swift:45
#59	0x0000000100629fb8 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2> ()
#60	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#61	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#62	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#63	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#64	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#65	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#66	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#67	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#68	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#69	0x000000010063967c in SerializeStepHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/Steps/SerializeStep.swift:34
#70	0x00000001006399a8 in protocol witness for Handler.handle(context:input:) in conformance SerializeStepHandler<τ_0_0, τ_0_1, τ_0_2> ()
#71	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#72	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#73	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#74	0x0000000100629790 in MiddlewareStep.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/MiddlewareStep.swift:36
#75	0x0000000100629fb8 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2> ()
#76	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#77	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#78	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#79	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#80	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#81	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#82	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#83	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#84	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#85	0x0000000100638994 in InitializeStepHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/Steps/InitializeStep.swift:36
#86	0x0000000100638d84 in protocol witness for Handler.handle(context:input:) in conformance InitializeStepHandler<τ_0_0, τ_0_1, τ_0_2> ()
#87	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#88	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#89	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#90	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#91	0x000000010065dccc in URLHostMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Networking/Http/Middlewares/URLHostMiddleware.swift:36
#92	0x000000010065e06c in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance URLHostMiddleware<τ_0_0, τ_0_1> ()
#93	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#94	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#95	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#96	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#97	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#98	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#99	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#100	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#101	0x0000000100623bfc in protocol witness for Handler.handle(context:input:) in conformance AnyHandler<τ_0_0, τ_0_1, τ_0_2> ()
#102	0x000000010065f360 in URLPathMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Networking/Http/Middlewares/URLPathMiddleware.swift:36
#103	0x000000010065f7c0 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance URLPathMiddleware<τ_0_0, τ_0_1, τ_0_2> ()
#104	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#105	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#106	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#107	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#108	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#109	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#110	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#111	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#112	0x00000001006295ec in MiddlewareStep.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/MiddlewareStep.swift:45
#113	0x0000000100629fb8 in protocol witness for Middleware.handle<τ_0_0>(context:input:next:) in conformance MiddlewareStep<τ_0_0, τ_0_1, τ_0_2> ()
#114	0x0000000100624d58 in implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#115	0x00000001006262d4 in partial apply for implicit closure #2 in implicit closure #1 in AnyMiddleware.init<τ_0_0>(_:) ()
#116	0x00000001006256bc in AnyMiddleware.handle<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyMiddleware.swift:36
#117	0x0000000100627cd8 in ComposedHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/ComposedHandler.swift:27
#118	0x000000010062803c in protocol witness for Handler.handle(context:input:) in conformance ComposedHandler<τ_0_0, τ_0_1, τ_0_2> ()
#119	0x00000001006236f8 in implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#120	0x0000000100624338 in partial apply for implicit closure #2 in implicit closure #1 in AnyHandler.init<τ_0_0>(_:) ()
#121	0x00000001006238f4 in AnyHandler.handle(context:input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/AnyHandler.swift:18
#122	0x000000010062c6f0 in OperationStack.handleMiddleware<τ_0_0>(context:input:next:) at /Users/jangirg/Projects/Amplify/SwiftSDK/smithy-swift/Sources/ClientRuntime/Middleware/OperationStack.swift:42
#123	0x00000001000b10a4 in S3Client.listBuckets(input:) at /Users/jangirg/Projects/Amplify/SwiftSDK/aws-sdk-swift/Sources/Services/AWSS3/S3Client.swift:2856
#124	0x00000001000017b0 in static TestSdk.main() at /Users/jangirg/Developer/Playground/0.8.0/TestSdk/Sources/TestSdk/TestSdk.swift:13
#125	0x0000000100001eec in static TestSdk.$main() ()
#126	0x000000010000217c in async_MainTQ0_ ()
#127	0x000000010000230c in thunk for @escaping @convention(thin) @async () -> () ()
#128	0x0000000100002438 in partial apply for thunk for @escaping @convention(thin) @async () -> () ()

Expected Behavior

TimeInterval must be in UInt64 range.

Current Behavior

Runtime error.

Reproduction Steps

import AWSS3

@main
public struct TestSdk {
    public private(set) var text = "Hello, World!"

    public static func main() async throws {
        print(TestSdk().text)
        
//         list buckets
        let client = try await S3Client()
        let output = try await client.listBuckets(input: ListBucketsInput())
        print(output)
    }
}

Possible Solution

No response

Additional Information/Context

No response

AWS CRT SWIFT version used

0.5.3

Compiler and Version used

swift-driver version: 1.62.15 Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51) Target: arm64-apple-macosx12.0

Operating System and version

macOS 12.6.1

Support for AssumeRole Chain

Describe the feature

Add support for STS AssumeRole, such as when ProfileA assumes ProfileB and ProfileB assumes a role for ProfileC.

Use Case

GA required feature

Proposed Solution

No response

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

HttpStream is activated without checking for an error

Calling aws_http_stream_activate results in a status code which will be AWS_OP_SUCCESS or AWS_OP_ERR and if it is an error the last error can be retrieved with aws_last_error() which is done in AWSCommonRuntimeError so it can conform to Swift.Error and thrown as an error. Relaying a failure from C through the Swift layers will be handled appropriately where the error is handled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.