fix(logging): crash in release builds #3971
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #
#3970
Description
Users are experiencing crashes in release builds when using CloudWatch logging during login. The crash occurs in
CloudWatchLoggingConsumer.ensureLogStreamExists()
due to memory management issues related to Swift async/await operations.This is a regression introduced in PR #3731, which refactored CloudWatch logging components to address strict concurrency warnings.
Root Cause
The crash occurs because:
CloudWatchLoggingStreamNameFormatter.formattedStreamName()
was changed from synchronous to asynchronousdeviceIdentifier
was changed from a stored property to a computed property with an async getterSolution
This PR addresses the issue by:
ensureLogStreamExists()
method to properly handle async operationsGeneral Checklist
Given When Then
inline code documentation and are named accordinglytestThing_condition_expectation()
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.