Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Firestore -> grpc crash after upgrading to iOS 18 SDK / XCode 16 #14018

Open
xaphod opened this issue Nov 3, 2024 · 40 comments
Open

Firestore -> grpc crash after upgrading to iOS 18 SDK / XCode 16 #14018

xaphod opened this issue Nov 3, 2024 · 40 comments
Assignees

Comments

@xaphod
Copy link

xaphod commented Nov 3, 2024

Description

This started getting reported via our crashlytics reporting after we moved to XCode 16 / iOS 18 SDK. The build in question uses iOS 18.1 SDK. It uses Firestore, which brings in grpc, which appears to be having this crash.

          Crashed: Thread
0  grpc                           0x241208 on_read(void*, absl::lts_20240116::Status) + 137 (memory_allocator.h:137)
1  grpc                           0x104ccc grpc_core::ExecCtx::Flush() + 814 (status.h:814)
2  grpc                           0x162d8 grpc_core::ExecCtx::~ExecCtx() + 133 (exec_ctx.h:133)
3  grpc                           0xefc28 grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) + 304 (exec_ctx.h:304)
4  grpc                           0xeffac void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::'lambda'(absl::lts_20240116::Status)&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 814 (status.h:814)
5  grpc                           0x52e80 grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) + 814 (status.h:814)
6  grpc                           0x53e30 void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::$_0&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 508 (any_invocable.h:508)
7  grpc                           0x53644 grpc_event_engine::experimental::PosixEngineClosure::Run() + 814 (status.h:814)
8  grpc                           0x2cccb4 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 1394 (vector:1394)
9  grpc                           0x2cc9cc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 494 (work_stealing_thread_pool.cc:494)
10 grpc                           0x2cd210 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 262 (work_stealing_thread_pool.cc:262)
11 grpc                           0x2a2f9c grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 149 (thd.cc:149)
12 libsystem_pthread.dylib        0x482c _pthread_start + 104
13 libsystem_pthread.dylib        0xcd8 thread_start + 8

Reproducing the issue

We cannot reproduce the issue, it occurs in production builds in the wild.

Firebase SDK Version

11.4.2

Xcode Version

16.1

Installation Method

CocoaPods

Firebase Product(s)

Firestore

Targeted Platforms

iOS

Relevant Log Output

No response

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
PODS:
  - abseil/algorithm (1.20240116.2):
    - abseil/algorithm/algorithm (= 1.20240116.2)
    - abseil/algorithm/container (= 1.20240116.2)
  - abseil/algorithm/algorithm (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/algorithm/container (1.20240116.2):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/base (1.20240116.2):
    - abseil/base/atomic_hook (= 1.20240116.2)
    - abseil/base/base (= 1.20240116.2)
    - abseil/base/base_internal (= 1.20240116.2)
    - abseil/base/config (= 1.20240116.2)
    - abseil/base/core_headers (= 1.20240116.2)
    - abseil/base/cycleclock_internal (= 1.20240116.2)
    - abseil/base/dynamic_annotations (= 1.20240116.2)
    - abseil/base/endian (= 1.20240116.2)
    - abseil/base/errno_saver (= 1.20240116.2)
    - abseil/base/fast_type_id (= 1.20240116.2)
    - abseil/base/log_severity (= 1.20240116.2)
    - abseil/base/malloc_internal (= 1.20240116.2)
    - abseil/base/no_destructor (= 1.20240116.2)
    - abseil/base/nullability (= 1.20240116.2)
    - abseil/base/prefetch (= 1.20240116.2)
    - abseil/base/pretty_function (= 1.20240116.2)
    - abseil/base/raw_logging_internal (= 1.20240116.2)
    - abseil/base/spinlock_wait (= 1.20240116.2)
    - abseil/base/strerror (= 1.20240116.2)
    - abseil/base/throw_delegate (= 1.20240116.2)
  - abseil/base/atomic_hook (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/base/base (1.20240116.2):
    - abseil/base/atomic_hook
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/cycleclock_internal
    - abseil/base/dynamic_annotations
    - abseil/base/log_severity
    - abseil/base/nullability
    - abseil/base/raw_logging_internal
    - abseil/base/spinlock_wait
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/base/base_internal (1.20240116.2):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/base/config (1.20240116.2):
    - abseil/xcprivacy
  - abseil/base/core_headers (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/base/cycleclock_internal (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/base/dynamic_annotations (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/base/endian (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/xcprivacy
  - abseil/base/errno_saver (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/base/fast_type_id (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/base/log_severity (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/base/malloc_internal (1.20240116.2):
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/base/no_destructor (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/base/nullability (1.20240116.2):
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/base/prefetch (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/base/pretty_function (1.20240116.2):
    - abseil/xcprivacy
  - abseil/base/raw_logging_internal (1.20240116.2):
    - abseil/base/atomic_hook
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/errno_saver
    - abseil/base/log_severity
    - abseil/xcprivacy
  - abseil/base/spinlock_wait (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/base/errno_saver
    - abseil/xcprivacy
  - abseil/base/strerror (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/errno_saver
    - abseil/xcprivacy
  - abseil/base/throw_delegate (1.20240116.2):
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/cleanup/cleanup (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/cleanup/cleanup_internal
    - abseil/xcprivacy
  - abseil/cleanup/cleanup_internal (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/container/common (1.20240116.2):
    - abseil/meta/type_traits
    - abseil/types/optional
    - abseil/xcprivacy
  - abseil/container/common_policy_traits (1.20240116.2):
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/container/compressed_tuple (1.20240116.2):
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/container/container_memory (1.20240116.2):
    - abseil/base/config
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/container/fixed_array (1.20240116.2):
    - abseil/algorithm/algorithm
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/throw_delegate
    - abseil/container/compressed_tuple
    - abseil/memory/memory
    - abseil/xcprivacy
  - abseil/container/flat_hash_map (1.20240116.2):
    - abseil/algorithm/container
    - abseil/base/core_headers
    - abseil/container/container_memory
    - abseil/container/hash_function_defaults
    - abseil/container/raw_hash_map
    - abseil/memory/memory
    - abseil/xcprivacy
  - abseil/container/flat_hash_set (1.20240116.2):
    - abseil/algorithm/container
    - abseil/base/core_headers
    - abseil/container/container_memory
    - abseil/container/hash_function_defaults
    - abseil/container/raw_hash_set
    - abseil/memory/memory
    - abseil/xcprivacy
  - abseil/container/hash_function_defaults (1.20240116.2):
    - abseil/base/config
    - abseil/hash/hash
    - abseil/strings/cord
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/container/hash_policy_traits (1.20240116.2):
    - abseil/container/common_policy_traits
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/container/hashtable_debug_hooks (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/container/hashtablez_sampler (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/debugging/stacktrace
    - abseil/memory/memory
    - abseil/profiling/exponential_biased
    - abseil/profiling/sample_recorder
    - abseil/synchronization/synchronization
    - abseil/time/time
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/container/inlined_vector (1.20240116.2):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/base/throw_delegate
    - abseil/container/inlined_vector_internal
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/container/inlined_vector_internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/container/compressed_tuple
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/container/layout (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/debugging/demangle_internal
    - abseil/meta/type_traits
    - abseil/strings/strings
    - abseil/types/span
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/container/raw_hash_map (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/throw_delegate
    - abseil/container/container_memory
    - abseil/container/raw_hash_set
    - abseil/xcprivacy
  - abseil/container/raw_hash_set (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/endian
    - abseil/base/prefetch
    - abseil/base/raw_logging_internal
    - abseil/container/common
    - abseil/container/compressed_tuple
    - abseil/container/container_memory
    - abseil/container/hash_policy_traits
    - abseil/container/hashtable_debug_hooks
    - abseil/container/hashtablez_sampler
    - abseil/hash/hash
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/crc/cpu_detect (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/crc/crc32c (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/prefetch
    - abseil/crc/cpu_detect
    - abseil/crc/crc_internal
    - abseil/crc/non_temporal_memcpy
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/crc/crc_cord_state (1.20240116.2):
    - abseil/base/config
    - abseil/crc/crc32c
    - abseil/numeric/bits
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/crc/crc_internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/prefetch
    - abseil/base/raw_logging_internal
    - abseil/crc/cpu_detect
    - abseil/memory/memory
    - abseil/numeric/bits
    - abseil/xcprivacy
  - abseil/crc/non_temporal_arm_intrinsics (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/crc/non_temporal_memcpy (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/crc/non_temporal_arm_intrinsics
    - abseil/xcprivacy
  - abseil/debugging/debugging_internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/errno_saver
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/debugging/demangle_internal (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/debugging/examine_stack (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/debugging/stacktrace
    - abseil/debugging/symbolize
    - abseil/xcprivacy
  - abseil/debugging/stacktrace (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/raw_logging_internal
    - abseil/debugging/debugging_internal
    - abseil/xcprivacy
  - abseil/debugging/symbolize (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
    - abseil/debugging/debugging_internal
    - abseil/debugging/demangle_internal
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/flags/commandlineflag (1.20240116.2):
    - abseil/base/config
    - abseil/base/fast_type_id
    - abseil/flags/commandlineflag_internal
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/xcprivacy
  - abseil/flags/commandlineflag_internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/fast_type_id
    - abseil/xcprivacy
  - abseil/flags/config (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/flags/path_util
    - abseil/flags/program_name
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/xcprivacy
  - abseil/flags/flag (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/flags/config
    - abseil/flags/flag_internal
    - abseil/flags/reflection
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/flags/flag_internal (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/flags/commandlineflag
    - abseil/flags/commandlineflag_internal
    - abseil/flags/config
    - abseil/flags/marshalling
    - abseil/flags/reflection
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/flags/marshalling (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/numeric/int128
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/xcprivacy
  - abseil/flags/path_util (1.20240116.2):
    - abseil/base/config
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/flags/private_handle_accessor (1.20240116.2):
    - abseil/base/config
    - abseil/flags/commandlineflag
    - abseil/flags/commandlineflag_internal
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/flags/program_name (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/flags/path_util
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/xcprivacy
  - abseil/flags/reflection (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/no_destructor
    - abseil/container/flat_hash_map
    - abseil/flags/commandlineflag
    - abseil/flags/commandlineflag_internal
    - abseil/flags/config
    - abseil/flags/private_handle_accessor
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/xcprivacy
  - abseil/functional/any_invocable (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/functional/bind_front (1.20240116.2):
    - abseil/base/base_internal
    - abseil/container/compressed_tuple
    - abseil/meta/type_traits
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/functional/function_ref (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/functional/any_invocable
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/hash/city (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/xcprivacy
  - abseil/hash/hash (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/container/fixed_array
    - abseil/functional/function_ref
    - abseil/hash/city
    - abseil/hash/low_level_hash
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/variant
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/hash/low_level_hash (1.20240116.2):
    - abseil/base/config
    - abseil/base/endian
    - abseil/base/prefetch
    - abseil/numeric/int128
    - abseil/xcprivacy
  - abseil/log/absl_check (1.20240116.2):
    - abseil/log/internal/check_impl
    - abseil/xcprivacy
  - abseil/log/absl_log (1.20240116.2):
    - abseil/log/internal/log_impl
    - abseil/xcprivacy
  - abseil/log/absl_vlog_is_on (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/log/internal/vlog_config
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/log/check (1.20240116.2):
    - abseil/log/internal/check_impl
    - abseil/log/internal/check_op
    - abseil/log/internal/conditions
    - abseil/log/internal/log_message
    - abseil/log/internal/strip
    - abseil/xcprivacy
  - abseil/log/globals (1.20240116.2):
    - abseil/base/atomic_hook
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/base/raw_logging_internal
    - abseil/hash/hash
    - abseil/log/internal/vlog_config
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/log/internal/append_truncated (1.20240116.2):
    - abseil/base/config
    - abseil/strings/strings
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/internal/check_impl (1.20240116.2):
    - abseil/base/core_headers
    - abseil/log/internal/check_op
    - abseil/log/internal/conditions
    - abseil/log/internal/log_message
    - abseil/log/internal/strip
    - abseil/xcprivacy
  - abseil/log/internal/check_op (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/log/internal/nullguard
    - abseil/log/internal/nullstream
    - abseil/log/internal/strip
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/log/internal/conditions (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/log/internal/voidify
    - abseil/xcprivacy
  - abseil/log/internal/config (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/log/internal/fnmatch (1.20240116.2):
    - abseil/base/config
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/log/internal/format (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/log/internal/append_truncated
    - abseil/log/internal/config
    - abseil/log/internal/globals
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/time/time
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/internal/globals (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/base/raw_logging_internal
    - abseil/strings/strings
    - abseil/time/time
    - abseil/xcprivacy
  - abseil/log/internal/log_impl (1.20240116.2):
    - abseil/log/absl_vlog_is_on
    - abseil/log/internal/conditions
    - abseil/log/internal/log_message
    - abseil/log/internal/strip
    - abseil/xcprivacy
  - abseil/log/internal/log_message (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/errno_saver
    - abseil/base/log_severity
    - abseil/base/raw_logging_internal
    - abseil/base/strerror
    - abseil/container/inlined_vector
    - abseil/debugging/examine_stack
    - abseil/log/globals
    - abseil/log/internal/append_truncated
    - abseil/log/internal/format
    - abseil/log/internal/globals
    - abseil/log/internal/log_sink_set
    - abseil/log/internal/nullguard
    - abseil/log/internal/proto
    - abseil/log/log_entry
    - abseil/log/log_sink
    - abseil/log/log_sink_registry
    - abseil/memory/memory
    - abseil/strings/strings
    - abseil/time/time
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/internal/log_sink_set (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/base/no_destructor
    - abseil/base/raw_logging_internal
    - abseil/cleanup/cleanup
    - abseil/log/globals
    - abseil/log/internal/config
    - abseil/log/internal/globals
    - abseil/log/log_entry
    - abseil/log/log_sink
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/internal/nullguard (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/log/internal/nullstream (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/log/internal/proto (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/strings/strings
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/internal/strip (1.20240116.2):
    - abseil/base/log_severity
    - abseil/log/internal/log_message
    - abseil/log/internal/nullstream
    - abseil/xcprivacy
  - abseil/log/internal/vlog_config (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/no_destructor
    - abseil/log/internal/fnmatch
    - abseil/memory/memory
    - abseil/strings/strings
    - abseil/synchronization/synchronization
    - abseil/types/optional
    - abseil/xcprivacy
  - abseil/log/internal/voidify (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/log/log (1.20240116.2):
    - abseil/log/internal/log_impl
    - abseil/log/vlog_is_on
    - abseil/xcprivacy
  - abseil/log/log_entry (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/log_severity
    - abseil/log/internal/config
    - abseil/strings/strings
    - abseil/time/time
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/log/log_sink (1.20240116.2):
    - abseil/base/config
    - abseil/log/log_entry
    - abseil/xcprivacy
  - abseil/log/log_sink_registry (1.20240116.2):
    - abseil/base/config
    - abseil/log/internal/log_sink_set
    - abseil/log/log_sink
    - abseil/xcprivacy
  - abseil/log/vlog_is_on (1.20240116.2):
    - abseil/log/absl_vlog_is_on
    - abseil/xcprivacy
  - abseil/memory (1.20240116.2):
    - abseil/memory/memory (= 1.20240116.2)
  - abseil/memory/memory (1.20240116.2):
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/meta (1.20240116.2):
    - abseil/meta/type_traits (= 1.20240116.2)
  - abseil/meta/type_traits (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/numeric/bits (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/numeric/int128 (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/numeric/bits
    - abseil/xcprivacy
  - abseil/numeric/representation (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/profiling/exponential_biased (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/xcprivacy
  - abseil/profiling/sample_recorder (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/synchronization/synchronization
    - abseil/time/time
    - abseil/xcprivacy
  - abseil/random/bit_gen_ref (1.20240116.2):
    - abseil/base/core_headers
    - abseil/base/fast_type_id
    - abseil/meta/type_traits
    - abseil/random/internal/distribution_caller
    - abseil/random/internal/fast_uniform_bits
    - abseil/random/random
    - abseil/xcprivacy
  - abseil/random/distributions (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/random/internal/distribution_caller
    - abseil/random/internal/fast_uniform_bits
    - abseil/random/internal/fastmath
    - abseil/random/internal/generate_real
    - abseil/random/internal/iostream_state_saver
    - abseil/random/internal/traits
    - abseil/random/internal/uniform_helper
    - abseil/random/internal/wide_multiply
    - abseil/strings/strings
    - abseil/xcprivacy
  - abseil/random/internal/distribution_caller (1.20240116.2):
    - abseil/base/config
    - abseil/base/fast_type_id
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/random/internal/fast_uniform_bits (1.20240116.2):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/random/internal/traits
    - abseil/xcprivacy
  - abseil/random/internal/fastmath (1.20240116.2):
    - abseil/numeric/bits
    - abseil/xcprivacy
  - abseil/random/internal/generate_real (1.20240116.2):
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/random/internal/fastmath
    - abseil/random/internal/traits
    - abseil/xcprivacy
  - abseil/random/internal/iostream_state_saver (1.20240116.2):
    - abseil/meta/type_traits
    - abseil/numeric/int128
    - abseil/xcprivacy
  - abseil/random/internal/nonsecure_base (1.20240116.2):
    - abseil/base/core_headers
    - abseil/container/inlined_vector
    - abseil/meta/type_traits
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/salted_seed_seq
    - abseil/random/internal/seed_material
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/random/internal/pcg_engine (1.20240116.2):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/random/internal/fastmath
    - abseil/random/internal/iostream_state_saver
    - abseil/xcprivacy
  - abseil/random/internal/platform (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/random/internal/pool_urbg (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/random/internal/randen
    - abseil/random/internal/seed_material
    - abseil/random/internal/traits
    - abseil/random/seed_gen_exception
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/random/internal/randen (1.20240116.2):
    - abseil/base/raw_logging_internal
    - abseil/random/internal/platform
    - abseil/random/internal/randen_hwaes
    - abseil/random/internal/randen_slow
    - abseil/xcprivacy
  - abseil/random/internal/randen_engine (1.20240116.2):
    - abseil/base/endian
    - abseil/meta/type_traits
    - abseil/random/internal/iostream_state_saver
    - abseil/random/internal/randen
    - abseil/xcprivacy
  - abseil/random/internal/randen_hwaes (1.20240116.2):
    - abseil/base/config
    - abseil/random/internal/platform
    - abseil/random/internal/randen_hwaes_impl
    - abseil/xcprivacy
  - abseil/random/internal/randen_hwaes_impl (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/numeric/int128
    - abseil/random/internal/platform
    - abseil/xcprivacy
  - abseil/random/internal/randen_slow (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/numeric/int128
    - abseil/random/internal/platform
    - abseil/xcprivacy
  - abseil/random/internal/salted_seed_seq (1.20240116.2):
    - abseil/container/inlined_vector
    - abseil/meta/type_traits
    - abseil/random/internal/seed_material
    - abseil/types/optional
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/random/internal/seed_material (1.20240116.2):
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/raw_logging_internal
    - abseil/random/internal/fast_uniform_bits
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/random/internal/traits (1.20240116.2):
    - abseil/base/config
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/xcprivacy
  - abseil/random/internal/uniform_helper (1.20240116.2):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/numeric/int128
    - abseil/random/internal/traits
    - abseil/xcprivacy
  - abseil/random/internal/wide_multiply (1.20240116.2):
    - abseil/base/config
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/random/internal/traits
    - abseil/xcprivacy
  - abseil/random/random (1.20240116.2):
    - abseil/random/distributions
    - abseil/random/internal/nonsecure_base
    - abseil/random/internal/pcg_engine
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/randen_engine
    - abseil/random/seed_sequences
    - abseil/xcprivacy
  - abseil/random/seed_gen_exception (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/random/seed_sequences (1.20240116.2):
    - abseil/base/config
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/salted_seed_seq
    - abseil/random/internal/seed_material
    - abseil/random/seed_gen_exception
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/status/status (1.20240116.2):
    - abseil/base/atomic_hook
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/no_destructor
    - abseil/base/nullability
    - abseil/base/raw_logging_internal
    - abseil/base/strerror
    - abseil/container/inlined_vector
    - abseil/debugging/stacktrace
    - abseil/debugging/symbolize
    - abseil/functional/function_ref
    - abseil/memory/memory
    - abseil/strings/cord
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/status/statusor (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/base/raw_logging_internal
    - abseil/meta/type_traits
    - abseil/status/status
    - abseil/strings/has_ostream_operator
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/types/variant
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/strings/charset (1.20240116.2):
    - abseil/base/core_headers
    - abseil/strings/string_view
    - abseil/xcprivacy
  - abseil/strings/cord (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/nullability
    - abseil/base/raw_logging_internal
    - abseil/container/inlined_vector
    - abseil/crc/crc32c
    - abseil/crc/crc_cord_state
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/strings/cord_internal
    - abseil/strings/cordz_functions
    - abseil/strings/cordz_info
    - abseil/strings/cordz_statistics
    - abseil/strings/cordz_update_scope
    - abseil/strings/cordz_update_tracker
    - abseil/strings/internal
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/strings/cord_internal (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/base/throw_delegate
    - abseil/container/compressed_tuple
    - abseil/container/container_memory
    - abseil/container/inlined_vector
    - abseil/container/layout
    - abseil/crc/crc_cord_state
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/strings/strings
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/strings/cordz_functions (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/profiling/exponential_biased
    - abseil/xcprivacy
  - abseil/strings/cordz_handle (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/synchronization/synchronization
    - abseil/xcprivacy
  - abseil/strings/cordz_info (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/container/inlined_vector
    - abseil/debugging/stacktrace
    - abseil/strings/cord_internal
    - abseil/strings/cordz_functions
    - abseil/strings/cordz_handle
    - abseil/strings/cordz_statistics
    - abseil/strings/cordz_update_tracker
    - abseil/synchronization/synchronization
    - abseil/time/time
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/strings/cordz_statistics (1.20240116.2):
    - abseil/base/config
    - abseil/strings/cordz_update_tracker
    - abseil/xcprivacy
  - abseil/strings/cordz_update_scope (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/strings/cord_internal
    - abseil/strings/cordz_info
    - abseil/strings/cordz_update_tracker
    - abseil/xcprivacy
  - abseil/strings/cordz_update_tracker (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/strings/has_ostream_operator (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/strings/internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/strings/str_format (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/strings/str_format_internal
    - abseil/strings/string_view
    - abseil/types/span
    - abseil/xcprivacy
  - abseil/strings/str_format_internal (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/container/fixed_array
    - abseil/container/inlined_vector
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/numeric/representation
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/strings/string_view (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/base/throw_delegate
    - abseil/xcprivacy
  - abseil/strings/strings (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/nullability
    - abseil/base/raw_logging_internal
    - abseil/base/throw_delegate
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/strings/charset
    - abseil/strings/internal
    - abseil/strings/string_view
    - abseil/xcprivacy
  - abseil/synchronization/graphcycles_internal (1.20240116.2):
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/synchronization/kernel_timeout_internal (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/time/time
    - abseil/xcprivacy
  - abseil/synchronization/synchronization (1.20240116.2):
    - abseil/base/atomic_hook
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
    - abseil/debugging/stacktrace
    - abseil/debugging/symbolize
    - abseil/synchronization/graphcycles_internal
    - abseil/synchronization/kernel_timeout_internal
    - abseil/time/time
    - abseil/xcprivacy
  - abseil/time (1.20240116.2):
    - abseil/time/internal (= 1.20240116.2)
    - abseil/time/time (= 1.20240116.2)
  - abseil/time/internal (1.20240116.2):
    - abseil/time/internal/cctz (= 1.20240116.2)
  - abseil/time/internal/cctz (1.20240116.2):
    - abseil/time/internal/cctz/civil_time (= 1.20240116.2)
    - abseil/time/internal/cctz/time_zone (= 1.20240116.2)
  - abseil/time/internal/cctz/civil_time (1.20240116.2):
    - abseil/base/config
    - abseil/xcprivacy
  - abseil/time/internal/cctz/time_zone (1.20240116.2):
    - abseil/base/config
    - abseil/time/internal/cctz/civil_time
    - abseil/xcprivacy
  - abseil/time/time (1.20240116.2):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/numeric/int128
    - abseil/strings/strings
    - abseil/time/internal/cctz/civil_time
    - abseil/time/internal/cctz/time_zone
    - abseil/types/optional
    - abseil/xcprivacy
  - abseil/types (1.20240116.2):
    - abseil/types/any (= 1.20240116.2)
    - abseil/types/bad_any_cast (= 1.20240116.2)
    - abseil/types/bad_any_cast_impl (= 1.20240116.2)
    - abseil/types/bad_optional_access (= 1.20240116.2)
    - abseil/types/bad_variant_access (= 1.20240116.2)
    - abseil/types/compare (= 1.20240116.2)
    - abseil/types/optional (= 1.20240116.2)
    - abseil/types/span (= 1.20240116.2)
    - abseil/types/variant (= 1.20240116.2)
  - abseil/types/any (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/fast_type_id
    - abseil/meta/type_traits
    - abseil/types/bad_any_cast
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/types/bad_any_cast (1.20240116.2):
    - abseil/base/config
    - abseil/types/bad_any_cast_impl
    - abseil/xcprivacy
  - abseil/types/bad_any_cast_impl (1.20240116.2):
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/types/bad_optional_access (1.20240116.2):
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/types/bad_variant_access (1.20240116.2):
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/xcprivacy
  - abseil/types/compare (1.20240116.2):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/types/optional (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/types/bad_optional_access
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/types/span (1.20240116.2):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/base/nullability
    - abseil/base/throw_delegate
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/types/variant (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/types/bad_variant_access
    - abseil/utility/utility
    - abseil/xcprivacy
  - abseil/utility/utility (1.20240116.2):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/xcprivacy
  - abseil/xcprivacy (1.20240116.2)
  - Actions/Core (1.3.4)
  - AppAuth (1.7.5):
    - AppAuth/Core (= 1.7.5)
    - AppAuth/ExternalUserAgent (= 1.7.5)
  - AppAuth/Core (1.7.5)
  - AppAuth/ExternalUserAgent (1.7.5):
    - AppAuth/Core
  - Beacon (3.0.1)
  - BetterSegmentedControl (2.0.1)
  - BoringSSL-GRPC (0.0.36):
    - BoringSSL-GRPC/Implementation (= 0.0.36)
    - BoringSSL-GRPC/Interface (= 0.0.36)
  - BoringSSL-GRPC/Implementation (0.0.36):
    - BoringSSL-GRPC/Interface (= 0.0.36)
  - BoringSSL-GRPC/Interface (0.0.36)
  - Color-Picker-for-iOS (2.1.1)
  - DataCompression (3.8.0)
  - DNPWPSPrinter (1.0.2):
    - xaphodObjCUtils
  - Firebase (11.4.2):
    - Firebase/Core (= 11.4.2)
  - Firebase/Core (11.4.2):
    - Firebase/CoreOnly
    - FirebaseAnalytics (~> 11.4.0)
  - Firebase/CoreOnly (11.4.2):
    - FirebaseCore (= 11.4.2)
  - FirebaseAnalytics (11.4.0):
    - FirebaseAnalytics/AdIdSupport (= 11.4.0)
    - FirebaseCore (~> 11.0)
    - FirebaseInstallations (~> 11.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/MethodSwizzler (~> 8.0)
    - GoogleUtilities/Network (~> 8.0)
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
    - nanopb (~> 3.30910.0)
  - FirebaseAnalytics/AdIdSupport (11.4.0):
    - FirebaseCore (~> 11.0)
    - FirebaseInstallations (~> 11.0)
    - GoogleAppMeasurement (= 11.4.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/MethodSwizzler (~> 8.0)
    - GoogleUtilities/Network (~> 8.0)
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
    - nanopb (~> 3.30910.0)
  - FirebaseAppCheckInterop (11.4.0)
  - FirebaseAuth (11.4.0):
    - FirebaseAppCheckInterop (~> 11.0)
    - FirebaseAuthInterop (~> 11.0)
    - FirebaseCore (~> 11.4)
    - FirebaseCoreExtension (~> 11.4)
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GTMSessionFetcher/Core (< 5.0, >= 3.4)
    - RecaptchaInterop (~> 100.0)
  - FirebaseAuthInterop (11.4.0)
  - FirebaseAuthUI (14.2.6):
    - FirebaseAuth (< 12.0, >= 11.0)
    - FirebaseCore
  - FirebaseCore (11.4.2):
    - FirebaseCoreInternal (< 12.0, >= 11.4.2)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/Logger (~> 8.0)
  - FirebaseCoreExtension (11.4.1):
    - FirebaseCore (~> 11.0)
  - FirebaseCoreInternal (11.4.2):
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
  - FirebaseCrashlytics (11.4.0):
    - FirebaseCore (~> 11.4)
    - FirebaseInstallations (~> 11.0)
    - FirebaseRemoteConfigInterop (~> 11.0)
    - FirebaseSessions (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - FirebaseDynamicLinks (11.4.0):
    - FirebaseCore (~> 11.0)
  - FirebaseEmailAuthUI (14.2.3):
    - FirebaseAuth
    - FirebaseAuthUI (>= 14.2)
    - FirebaseCore
    - GoogleUtilities/UserDefaults
  - FirebaseFirestore (11.4.0):
    - FirebaseCore (~> 11.4)
    - FirebaseCoreExtension (~> 11.4)
    - FirebaseFirestoreInternal (= 11.4.0)
    - FirebaseSharedSwift (~> 11.0)
  - FirebaseFirestoreInternal (11.4.0):
    - abseil/algorithm (~> 1.20240116.1)
    - abseil/base (~> 1.20240116.1)
    - abseil/container/flat_hash_map (~> 1.20240116.1)
    - abseil/memory (~> 1.20240116.1)
    - abseil/meta (~> 1.20240116.1)
    - abseil/strings/strings (~> 1.20240116.1)
    - abseil/time (~> 1.20240116.1)
    - abseil/types (~> 1.20240116.1)
    - FirebaseAppCheckInterop (~> 11.0)
    - FirebaseCore (~> 11.0)
    - "gRPC-C++ (~> 1.65.0)"
    - gRPC-Core (~> 1.65.0)
    - leveldb-library (~> 1.22)
    - nanopb (~> 3.30910.0)
  - FirebaseGoogleAuthUI (14.2.2):
    - FirebaseAuth
    - FirebaseAuthUI (>= 14.2)
    - FirebaseCore
    - GoogleSignIn (~> 7.0)
  - FirebaseInstallations (11.4.0):
    - FirebaseCore (~> 11.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - PromisesObjC (~> 2.4)
  - FirebaseOAuthUI (14.2.0):
    - FirebaseAuth (< 12.0, >= 8.0)
    - FirebaseAuthUI (< 15.0, >= 12.0.2)
  - FirebaseRemoteConfigInterop (11.4.0)
  - FirebaseSessions (11.4.0):
    - FirebaseCore (~> 11.4)
    - FirebaseCoreExtension (~> 11.4)
    - FirebaseInstallations (~> 11.0)
    - GoogleDataTransport (~> 10.0)
    - GoogleUtilities/Environment (~> 8.0)
    - GoogleUtilities/UserDefaults (~> 8.0)
    - nanopb (~> 3.30910.0)
    - PromisesSwift (~> 2.1)
  - FirebaseSharedSwift (11.4.0)
  - FirebaseStorage (11.4.0):
    - FirebaseAppCheckInterop (~> 11.0)
    - FirebaseAuthInterop (~> 11.0)
    - FirebaseCore (~> 11.4)
    - FirebaseCoreExtension (~> 11.4)
    - GoogleUtilities/Environment (~> 8.0)
    - GTMSessionFetcher/Core (< 5.0, >= 3.4)
  - FirebaseUI/Auth (14.2.0):
    - FirebaseAuthUI (~> 14.2)
  - FirebaseUI/Email (14.2.0):
    - FirebaseEmailAuthUI (~> 14.2)
  - FirebaseUI/Google (14.2.0):
    - FirebaseGoogleAuthUI (~> 14.2)
  - FirebaseUI/OAuth (14.2.0):
    - FirebaseOAuthUI (~> 14.2)
  - GoogleAppMeasurement (11.4.0):
    - GoogleAppMeasurement/AdIdSupport (= 11.4.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/MethodSwizzler (~> 8.0)
    - GoogleUtilities/Network (~> 8.0)
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
    - nanopb (~> 3.30910.0)
  - GoogleAppMeasurement/AdIdSupport (11.4.0):
    - GoogleAppMeasurement/WithoutAdIdSupport (= 11.4.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/MethodSwizzler (~> 8.0)
    - GoogleUtilities/Network (~> 8.0)
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
    - nanopb (~> 3.30910.0)
  - GoogleAppMeasurement/WithoutAdIdSupport (11.4.0):
    - GoogleUtilities/AppDelegateSwizzler (~> 8.0)
    - GoogleUtilities/MethodSwizzler (~> 8.0)
    - GoogleUtilities/Network (~> 8.0)
    - "GoogleUtilities/NSData+zlib (~> 8.0)"
    - nanopb (~> 3.30910.0)
  - GoogleDataTransport (10.1.0):
    - nanopb (~> 3.30910.0)
    - PromisesObjC (~> 2.4)
  - GoogleSignIn (7.1.0):
    - AppAuth (< 2.0, >= 1.7.3)
    - GTMAppAuth (< 5.0, >= 4.1.1)
    - GTMSessionFetcher/Core (~> 3.3)
  - GoogleUtilities/AppDelegateSwizzler (8.0.2):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
    - GoogleUtilities/Privacy
  - GoogleUtilities/Environment (8.0.2):
    - GoogleUtilities/Privacy
  - GoogleUtilities/Logger (8.0.2):
    - GoogleUtilities/Environment
    - GoogleUtilities/Privacy
  - GoogleUtilities/MethodSwizzler (8.0.2):
    - GoogleUtilities/Logger
    - GoogleUtilities/Privacy
  - GoogleUtilities/Network (8.0.2):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Privacy
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (8.0.2)":
    - GoogleUtilities/Privacy
  - GoogleUtilities/Privacy (8.0.2)
  - GoogleUtilities/Reachability (8.0.2):
    - GoogleUtilities/Logger
    - GoogleUtilities/Privacy
  - GoogleUtilities/UserDefaults (8.0.2):
    - GoogleUtilities/Logger
    - GoogleUtilities/Privacy
  - "gRPC-C++ (1.65.5)":
    - "gRPC-C++/Implementation (= 1.65.5)"
    - "gRPC-C++/Interface (= 1.65.5)"
  - "gRPC-C++/Implementation (1.65.5)":
    - abseil/algorithm/container (~> 1.20240116.2)
    - abseil/base/base (~> 1.20240116.2)
    - abseil/base/config (~> 1.20240116.2)
    - abseil/base/core_headers (~> 1.20240116.2)
    - abseil/base/log_severity (~> 1.20240116.2)
    - abseil/base/no_destructor (~> 1.20240116.2)
    - abseil/cleanup/cleanup (~> 1.20240116.2)
    - abseil/container/flat_hash_map (~> 1.20240116.2)
    - abseil/container/flat_hash_set (~> 1.20240116.2)
    - abseil/container/inlined_vector (~> 1.20240116.2)
    - abseil/flags/flag (~> 1.20240116.2)
    - abseil/flags/marshalling (~> 1.20240116.2)
    - abseil/functional/any_invocable (~> 1.20240116.2)
    - abseil/functional/bind_front (~> 1.20240116.2)
    - abseil/functional/function_ref (~> 1.20240116.2)
    - abseil/hash/hash (~> 1.20240116.2)
    - abseil/log/absl_check (~> 1.20240116.2)
    - abseil/log/absl_log (~> 1.20240116.2)
    - abseil/log/check (~> 1.20240116.2)
    - abseil/log/globals (~> 1.20240116.2)
    - abseil/log/log (~> 1.20240116.2)
    - abseil/memory/memory (~> 1.20240116.2)
    - abseil/meta/type_traits (~> 1.20240116.2)
    - abseil/random/bit_gen_ref (~> 1.20240116.2)
    - abseil/random/distributions (~> 1.20240116.2)
    - abseil/random/random (~> 1.20240116.2)
    - abseil/status/status (~> 1.20240116.2)
    - abseil/status/statusor (~> 1.20240116.2)
    - abseil/strings/cord (~> 1.20240116.2)
    - abseil/strings/str_format (~> 1.20240116.2)
    - abseil/strings/strings (~> 1.20240116.2)
    - abseil/synchronization/synchronization (~> 1.20240116.2)
    - abseil/time/time (~> 1.20240116.2)
    - abseil/types/optional (~> 1.20240116.2)
    - abseil/types/span (~> 1.20240116.2)
    - abseil/types/variant (~> 1.20240116.2)
    - abseil/utility/utility (~> 1.20240116.2)
    - "gRPC-C++/Interface (= 1.65.5)"
    - "gRPC-C++/Privacy (= 1.65.5)"
    - gRPC-Core (= 1.65.5)
  - "gRPC-C++/Interface (1.65.5)"
  - "gRPC-C++/Privacy (1.65.5)"
  - gRPC-Core (1.65.5):
    - gRPC-Core/Implementation (= 1.65.5)
    - gRPC-Core/Interface (= 1.65.5)
  - gRPC-Core/Implementation (1.65.5):
    - abseil/algorithm/container (~> 1.20240116.2)
    - abseil/base/base (~> 1.20240116.2)
    - abseil/base/config (~> 1.20240116.2)
    - abseil/base/core_headers (~> 1.20240116.2)
    - abseil/base/log_severity (~> 1.20240116.2)
    - abseil/base/no_destructor (~> 1.20240116.2)
    - abseil/cleanup/cleanup (~> 1.20240116.2)
    - abseil/container/flat_hash_map (~> 1.20240116.2)
    - abseil/container/flat_hash_set (~> 1.20240116.2)
    - abseil/container/inlined_vector (~> 1.20240116.2)
    - abseil/flags/flag (~> 1.20240116.2)
    - abseil/flags/marshalling (~> 1.20240116.2)
    - abseil/functional/any_invocable (~> 1.20240116.2)
    - abseil/functional/bind_front (~> 1.20240116.2)
    - abseil/functional/function_ref (~> 1.20240116.2)
    - abseil/hash/hash (~> 1.20240116.2)
    - abseil/log/check (~> 1.20240116.2)
    - abseil/log/globals (~> 1.20240116.2)
    - abseil/log/log (~> 1.20240116.2)
    - abseil/memory/memory (~> 1.20240116.2)
    - abseil/meta/type_traits (~> 1.20240116.2)
    - abseil/random/bit_gen_ref (~> 1.20240116.2)
    - abseil/random/distributions (~> 1.20240116.2)
    - abseil/random/random (~> 1.20240116.2)
    - abseil/status/status (~> 1.20240116.2)
    - abseil/status/statusor (~> 1.20240116.2)
    - abseil/strings/cord (~> 1.20240116.2)
    - abseil/strings/str_format (~> 1.20240116.2)
    - abseil/strings/strings (~> 1.20240116.2)
    - abseil/synchronization/synchronization (~> 1.20240116.2)
    - abseil/time/time (~> 1.20240116.2)
    - abseil/types/optional (~> 1.20240116.2)
    - abseil/types/span (~> 1.20240116.2)
    - abseil/types/variant (~> 1.20240116.2)
    - abseil/utility/utility (~> 1.20240116.2)
    - BoringSSL-GRPC (= 0.0.36)
    - gRPC-Core/Interface (= 1.65.5)
    - gRPC-Core/Privacy (= 1.65.5)
  - gRPC-Core/Interface (1.65.5)
  - gRPC-Core/Privacy (1.65.5)
  - GTMAppAuth (4.1.1):
    - AppAuth/Core (~> 1.7)
    - GTMSessionFetcher/Core (< 4.0, >= 3.3)
  - GTMSessionFetcher/Core (3.5.0)
  - leveldb-library (1.22.6)
  - LicensePlist (3.25.1)
  - MetalPetal/Core (1.25.2)
  - MetalPetal/Swift (1.25.2):
    - MetalPetal/Core
  - nanopb (3.30910.0):
    - nanopb/decode (= 3.30910.0)
    - nanopb/encode (= 3.30910.0)
  - nanopb/decode (3.30910.0)
  - nanopb/encode (3.30910.0)
  - PhoneNumberKit (4.0.0):
    - PhoneNumberKit/PhoneNumberKitCore (= 4.0.0)
    - PhoneNumberKit/UIKit (= 4.0.0)
  - PhoneNumberKit/PhoneNumberKitCore (4.0.0)
  - PhoneNumberKit/UIKit (4.0.0):
    - PhoneNumberKit/PhoneNumberKitCore
  - PromisesObjC (2.4.0)
  - PromisesSwift (2.4.0):
    - PromisesObjC (= 2.4.0)
  - RecaptchaInterop (100.0.0)
  - SDWebImage (5.19.7):
    - SDWebImage/Core (= 5.19.7)
  - SDWebImage/Core (5.19.7)
  - VideoNetworkFramework (1.1.7):
    - VideoNetworkFramework/Core (= 1.1.7)
  - VideoNetworkFramework/Core (1.1.7):
    - DataCompression (< 4.0.0)
  - xaphodObjCUtils (0.0.13):
    - xaphodObjCUtils/CocoaRunloopSocket (= 0.0.13)
    - xaphodObjCUtils/RXTimer (= 0.0.13)
  - xaphodObjCUtils/CocoaRunloopSocket (0.0.13)
  - xaphodObjCUtils/RXTimer (0.0.13)

DEPENDENCIES:
  - "Actions/Core (from `git@github.com:xaphod/Actions.git`)"
  - Beacon
  - BetterSegmentedControl
  - Color-Picker-for-iOS (from `https://github.com/xaphod/Color-Picker-for-iOS.git`)
  - "DNPWPSPrinter (from `git@github.com:xaphod/DNPWPSPrinter.git`)"
  - Firebase
  - FirebaseAnalytics
  - FirebaseAuth
  - FirebaseCore
  - FirebaseCrashlytics
  - FirebaseDynamicLinks
  - FirebaseFirestore
  - FirebaseStorage
  - FirebaseUI/Auth
  - FirebaseUI/Email
  - FirebaseUI/Google
  - FirebaseUI/OAuth
  - LicensePlist
  - MetalPetal/Swift
  - PhoneNumberKit (from `https://github.com/marmelroy/PhoneNumberKit`)
  - SDWebImage
  - "VideoNetworkFramework (from `git@github.com:xaphod/VideoNetworkFramework.git`)"
  - "xaphodObjCUtils (from `git@github.com:xaphod/xaphodObjCUtils.git`)"
  - "xaphodObjCUtils/RXTimer (from `git@github.com:xaphod/xaphodObjCUtils.git`)"

SPEC REPOS:
  trunk:
    - abseil
    - AppAuth
    - Beacon
    - BetterSegmentedControl
    - BoringSSL-GRPC
    - DataCompression
    - Firebase
    - FirebaseAnalytics
    - FirebaseAppCheckInterop
    - FirebaseAuth
    - FirebaseAuthInterop
    - FirebaseAuthUI
    - FirebaseCore
    - FirebaseCoreExtension
    - FirebaseCoreInternal
    - FirebaseCrashlytics
    - FirebaseDynamicLinks
    - FirebaseEmailAuthUI
    - FirebaseFirestore
    - FirebaseFirestoreInternal
    - FirebaseGoogleAuthUI
    - FirebaseInstallations
    - FirebaseOAuthUI
    - FirebaseRemoteConfigInterop
    - FirebaseSessions
    - FirebaseSharedSwift
    - FirebaseStorage
    - FirebaseUI
    - GoogleAppMeasurement
    - GoogleDataTransport
    - GoogleSignIn
    - GoogleUtilities
    - "gRPC-C++"
    - gRPC-Core
    - GTMAppAuth
    - GTMSessionFetcher
    - leveldb-library
    - LicensePlist
    - MetalPetal
    - nanopb
    - PromisesObjC
    - PromisesSwift
    - RecaptchaInterop
    - SDWebImage

EXTERNAL SOURCES:
  Actions:
    :git: "git@github.com:xaphod/Actions.git"
  Color-Picker-for-iOS:
    :git: https://github.com/xaphod/Color-Picker-for-iOS.git
  DNPWPSPrinter:
    :git: "git@github.com:xaphod/DNPWPSPrinter.git"
  PhoneNumberKit:
    :git: https://github.com/marmelroy/PhoneNumberKit
  VideoNetworkFramework:
    :git: "git@github.com:xaphod/VideoNetworkFramework.git"
  xaphodObjCUtils:
    :git: "git@github.com:xaphod/xaphodObjCUtils.git"

CHECKOUT OPTIONS:
  Actions:
    :commit: 555a9fe7157308d1109fa5eec47ae3730f559206
    :git: "git@github.com:xaphod/Actions.git"
  Color-Picker-for-iOS:
    :commit: 794dadd0e579af296a0b1434ac67fa0e27c68ed8
    :git: https://github.com/xaphod/Color-Picker-for-iOS.git
  DNPWPSPrinter:
    :commit: fc48891e6a445e60c5286c71665b97a71f6f0915
    :git: "git@github.com:xaphod/DNPWPSPrinter.git"
  PhoneNumberKit:
    :commit: 0fb5075ee09fa6637055918afc9f9258b908ba60
    :git: https://github.com/marmelroy/PhoneNumberKit
  VideoNetworkFramework:
    :commit: 696ede9d2d6a97ad3dd991dafcf9a4d4e796df7f
    :git: "git@github.com:xaphod/VideoNetworkFramework.git"
  xaphodObjCUtils:
    :commit: 67815dc59a9e5d57786c7bae09c153af8fbd5161
    :git: "git@github.com:xaphod/xaphodObjCUtils.git"

SPEC CHECKSUMS:
  abseil: d121da9ef7e2ff4cab7666e76c5a3e0915ae08c3
  Actions: 54a86aef7fae1b0d766dbc83979521e1e86852df
  AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
  Beacon: e6793fcd1fefe8fe9436a0bad3e79e7678e16105
  BetterSegmentedControl: 09607b27861d49cbce48b7673b74f9150a3d371a
  BoringSSL-GRPC: ca6a8e5d04812fce8ffd6437810c2d46f925eaeb
  Color-Picker-for-iOS: 656c04b439d8f610593443e4ebcec611cfba26f7
  DataCompression: 630f9e7db6360b4d8929fb72fbd23689ca43bc16
  DNPWPSPrinter: 06470dccdc79fcf9073766df58d6b53c6b22f9e2
  Firebase: 7fd5466678d964be78fbf536d8a3385da19c4828
  FirebaseAnalytics: 3feef9ae8733c567866342a1000691baaa7cad49
  FirebaseAppCheckInterop: 1b9643ae2f1ee214488caa2f8e32b7bc2f0f3735
  FirebaseAuth: c359af98bd703cbf4293eec107a40de08ede6ce6
  FirebaseAuthInterop: 9ac948965ac13ec9d8a080f39490ddb2bda30520
  FirebaseAuthUI: 8e5c09b20bf11478b9fa42c7ed6575fa95807c86
  FirebaseCore: 6b32c57269bd999aab34354c3923d92a6e5f3f84
  FirebaseCoreExtension: f1bc67a4702931a7caa097d8e4ac0a1b0d16720e
  FirebaseCoreInternal: 35731192cab10797b88411be84940d2beb33a238
  FirebaseCrashlytics: 41bbdd2b514a8523cede0c217aee6ef7ecf38401
  FirebaseDynamicLinks: 192110d77418357fe994f2823a7df7db3ccb15bf
  FirebaseEmailAuthUI: c448736db9fcd5895d29229a9e0aec016ece0389
  FirebaseFirestore: 2ccdf893fd7e175aa8ec58faa06338b346d27db8
  FirebaseFirestoreInternal: 004452c4669d5df8869c9f8f7a24ee0009852d5b
  FirebaseGoogleAuthUI: bbfd673275e4a4a4a3d0e451884087452d088453
  FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
  FirebaseOAuthUI: 13e6b83a4e9680f2806107d7b383ede1f550e499
  FirebaseRemoteConfigInterop: e76f46ffa4d6a65e273d4dfebb6a79e588cec136
  FirebaseSessions: 3f56f177d9e53a85021d16b31f9a111849d1dd8b
  FirebaseSharedSwift: 505dae2d05969dbf6d43749a642bb1bf230f0252
  FirebaseStorage: 1bf8f80ac3bb02c72844b7350e95e10be7113ef0
  FirebaseUI: 3909853fc34f316c822e195376f144b1b0c6ca15
  GoogleAppMeasurement: 987769c4ca6b968f2479fbcc9fe3ce34af454b8e
  GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
  GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db
  GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
  "gRPC-C++": 2fa52b3141e7789a28a737f251e0c45b4cb20a87
  gRPC-Core: a27c294d6149e1c39a7d173527119cfbc3375ce4
  GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de
  GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
  leveldb-library: cc8b8f8e013647a295ad3f8cd2ddf49a6f19be19
  LicensePlist: 8a2019452d6a6376d2b5a40e4170af6b62f51ee5
  MetalPetal: 001513fa0b0f6d4f147aa2651d40c594f2eacb01
  nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
  PhoneNumberKit: fca23e22dcd17f602577f177bdd502512190e52e
  PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
  PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851
  RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
  SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
  VideoNetworkFramework: f13f054dd26a31954425b1f438132e939929e55d
  xaphodObjCUtils: c0ff01ae6577c9a30f0c0c52e5bcbf1ba568c02d

PODFILE CHECKSUM: 0e54a56940d477120952330cb7cc74a2348522f7

COCOAPODS: 1.15.2
@google-oss-bot
Copy link

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

@cherylEnkidu
Copy link
Contributor

cherylEnkidu commented Nov 4, 2024

Added back crashlytics since according to the flutter ticket linked, this also happens in crashlytics as well.like

crashlytics doesn't depend on grpc

@themiswang
Copy link
Contributor

themiswang commented Nov 4, 2024

Remove Crashlytics, it has nothing to do with Crashlytics. We only record the crash.
Edit: seems like there is a timing difference on change :)

@cherylEnkidu cherylEnkidu self-assigned this Nov 4, 2024
@bdaz
Copy link

bdaz commented Nov 6, 2024

I'm seeing lots of this too.

@jbwise
Copy link

jbwise commented Nov 7, 2024

In all of our crash reports, we see the offending thread looks like this (also attached):
crash.txt

#0 0x0000000104b29208 in grpc_event_engine::experimental::MemoryAllocator::MakeSlice(grpc_event_engine::experimental::MemoryRequest) at .../ios/Pods/gRPC-Core/include/grpc/event_engine/memory_allocator.h:137
#1 0x0000000104b29208 in flush_read_staging_buffer((anonymous namespace)::secure_endpoint*, unsigned char**, unsigned char**) at .../ios/Pods/gRPC-Core/src/core/handshaker/security/secure_endpoint.cc:229
#2 0x0000000104b29208 in on_read(void*, absl::lts_20240116::Status) at .../ios/Pods/gRPC-Core/src/core/handshaker/security/secure_endpoint.cc:311
#3 0x00000001049ecccc in exec_ctx_run(grpc_closure*) at .../ios/Pods/gRPC-Core/src/core/lib/iomgr/exec_ctx.cc:45
#4 0x00000001049ecccc in grpc_core::ExecCtx::Flush() at .../ios/Pods/gRPC-Core/src/core/lib/iomgr/exec_ctx.cc:84
#5 0x00000001048fe2d8 in grpc_core::ExecCtx::~ExecCtx() at .../ios/Pods/gRPC-C++/src/core/lib/iomgr/exec_ctx.h:132
#6 0x00000001049d7c28 in grpc_core::ExecCtx::~ExecCtx() at .../ios/Pods/gRPC-C++/src/core/lib/iomgr/exec_ctx.h:130
#7 0x00000001049d7c28 in grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) at .../ios/Pods/gRPC-Core/src/core/lib/iomgr/endpoint.cc:142
#8 0x00000001049d7fac in grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*):... at .../ios/Pods/gRPC-Core/src/core/lib/iomgr/endpoint.cc:113
#9 0x00000001049d7fac in decltype(std::declval<grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpo... at .../ios/Pods/abseil/absl/base/internal/invoke.h:185
#10 0x00000001049d7fac in decltype(Invoker<grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::... at .../ios/Pods/abseil/absl/base/internal/invoke.h:212
#11 0x00000001049d7fac in void absl::lts_20240116::internal_any_invocable::InvokeR<void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event... at .../ios/Pods/abseil/absl/functional/any_invocable.h:132
#12 0x00000001049d7fac in void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*... at .../ios/Pods/abseil/absl/functional/any_invocable.h:310
#13 0x000000010493ae80 in absl::lts_20240116::internal_any_invocable::Impl<void (absl::lts_20240116::Status)>::operator()(absl::lts_20240116::Status) at .../ios/Pods/abseil/absl/functional/any_invocable.h:868
#14 0x000000010493ae80 in grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc:302
#15 0x000000010493be30 in grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::ex... at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc:269
#16 0x000000010493be30 in decltype(std::declval<grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*,... at .../ios/Pods/abseil/absl/base/internal/invoke.h:185
#17 0x000000010493be30 in decltype(Invoker<grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc... at .../ios/Pods/abseil/absl/base/internal/invoke.h:212
#18 0x000000010493be30 in void absl::lts_20240116::internal_any_invocable::InvokeR<void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_... at .../ios/Pods/abseil/absl/functional/any_invocable.h:132
#19 0x000000010493be30 in void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::St... at .../ios/Pods/abseil/absl/functional/any_invocable.h:368
#20 0x000000010493b644 in absl::lts_20240116::internal_any_invocable::Impl<void (absl::lts_20240116::Status)>::operator()(absl::lts_20240116::Status) at .../ios/Pods/abseil/absl/functional/any_invocable.h:868
#21 0x000000010493b644 in grpc_event_engine::experimental::PosixEngineClosure::Run() at .../ios/Pods/gRPC-C++/src/core/lib/event_engine/posix_engine/posix_engine_closure.h:49
#22 0x0000000104bb4e64 in grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:580
#23 0x0000000104bb49cc in grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:494
#24 0x0000000104bb5210 in grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::operator()(void*) const at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:261
#25 0x0000000104bb5210 in grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) at .../ios/Pods/gRPC-Core/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:259
#26 0x0000000104b8af9c in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::operator()(void*) const at .../ios/Pods/gRPC-Core/src/core/lib/gprpp/posix/thd.cc:148
#27 0x0000000104b8af9c in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) at .../ios/Pods/gRPC-Core/src/core/lib/gprpp/posix/thd.cc:118
#28 (null) in _pthread_start ()
#29 (null) in thread_start ()

@xaphod
Copy link
Author

xaphod commented Nov 7, 2024

Looking forward to an update here, as this is impacting our users.
Although the crash seems to have been caused by the update of building with the iOS 18 SDK in XCode 16, it isn't limited to crashes on iOS 18 - we have most of the crashes occurring on iOS 17.

@cherylEnkidu
Copy link
Contributor

Hi folks,

The team tried to reproduce on our side but didn't get a successful sample so far. We would be appreciate if we can get a repo for this issue to help use investigate.

@xaphod
Copy link
Author

xaphod commented Nov 7, 2024

For us it repros for few users so we cannot get a repro, but for those users they hit it multiple times.
Most common devices are iPad 7th generation and iPad Pro 10.5".
Both of those are considerably older devices with slower SoCs, so if you're testing + looking for a repro i'd start with running on older devices.

@jbwise
Copy link

jbwise commented Nov 7, 2024

We are not able to reproduce it in debugging. It only happens on deployed devices. It is far more common on an iPhone 13, and very difficult to reproduce on an iPhone 14. My guess right now is that it is trying to allocate memory when coming back from sleep before iOS is allowing it to do so. I may add some delays to the code just to try testing my theory. We are able to build and deploy changes and replicate the error via test flight, but I only get the crash report, no legitimate debug information.

@Wackymax
Copy link

Wackymax commented Nov 8, 2024

Looking at my crash reports it seems like this always happens when the app is running in the background. I've personally seen the crash happen on my device, and it often happens after a few minutes after the app has been backgrounded. Maybe Firestore is trying to do something just as iOS is putting the app to sleep?

@xaphod
Copy link
Author

xaphod commented Nov 11, 2024

Here's one that is similar but different:

          Crashed: Thread
0  grpc                           0x1d6264 grpc_core::(anonymous namespace)::PickFirst::GoIdle() + 620 (pick_first.cc:620)
1  grpc                           0x1d57e4 grpc_core::(anonymous namespace)::PickFirst::SubchannelList::SubchannelData::SubchannelState::Watcher::OnConnectivityStateChange(grpc_connectivity_state, absl::lts_20240116::Status) + 787 (pick_first.cc:787)
2  grpc                           0xb6bc0 grpc_core::ClientChannelFilter::SubchannelWrapper::WatcherWrapper::ApplyUpdateInControlPlaneWorkSerializer(grpc_connectivity_state, absl::lts_20240116::Status const&) + 814 (status.h:814)
3  grpc                           0xb6a24 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne180100]<grpc_core::ClientChannelFilter::SubchannelWrapper::WatcherWrapper::OnConnectivityStateChange(grpc_core::RefCountedPtr<grpc_core::Subchannel::ConnectivityStateWatcherInterface>, grpc_connectivity_state, absl::lts_20240116::Status const&)::'lambda'()&>(grpc_core::ClientChannelFilter::SubchannelWrapper::WatcherWrapper::OnConnectivityStateChange(grpc_core::RefCountedPtr<grpc_core::Subchannel::ConnectivityStateWatcherInterface>, grpc_connectivity_state, absl::lts_20240116::Status const&)::'lambda'()&) + 365 (ref_counted.h:365)
4  grpc                           0x2c9130 grpc_core::WorkSerializer::LegacyWorkSerializer::Run(std::__1::function<void ()>, grpc_core::DebugLocation const&) + 416 (function.h:416)
5  grpc                           0x2ca2fc grpc_core::WorkSerializer::Run(std::__1::function<void ()>, grpc_core::DebugLocation const&) + 395 (function.h:395)
6  grpc                           0xb647c grpc_core::ClientChannelFilter::SubchannelWrapper::WatcherWrapper::OnConnectivityStateChange(grpc_core::RefCountedPtr<grpc_core::Subchannel::ConnectivityStateWatcherInterface>, grpc_connectivity_state, absl::lts_20240116::Status const&) + 395 (function.h:395)
7  grpc                           0x28b598 std::__1::__function::__func<grpc_core::Subchannel::ConnectivityStateWatcherList::NotifyLocked(grpc_connectivity_state, absl::lts_20240116::Status const&)::$_0, std::__1::allocator<grpc_core::Subchannel::ConnectivityStateWatcherList::NotifyLocked(grpc_connectivity_state, absl::lts_20240116::Status const&)::$_0>, void ()>::operator()() + 112 (ref_counted_ptr.h:112)
8  grpc                           0x2c9454 grpc_core::WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() + 395 (function.h:395)
9  grpc                           0x28c65c grpc_core::Subchannel::ConnectedSubchannelStateWatcher::OnConnectivityStateChange(grpc_connectivity_state, absl::lts_20240116::Status const&) + 439 (subchannel.cc:439)
10 grpc                           0xd0398 grpc_core::AsyncConnectivityStateWatcherInterface::Notifier::SendNotification(void*, absl::lts_20240116::Status) + 814 (status.h:814)
11 grpc                           0x104ccc grpc_core::ExecCtx::Flush() + 814 (status.h:814)
12 grpc                           0x162d8 grpc_core::ExecCtx::~ExecCtx() + 133 (exec_ctx.h:133)
13 grpc                           0xefc28 grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) + 304 (exec_ctx.h:304)
14 grpc                           0xeffac void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::'lambda'(absl::lts_20240116::Status)&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 814 (status.h:814)
15 grpc                           0x52e80 grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) + 814 (status.h:814)
16 grpc                           0x53e30 void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::$_0&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 508 (any_invocable.h:508)
17 grpc                           0x53644 grpc_event_engine::experimental::PosixEngineClosure::Run() + 814 (status.h:814)
18 grpc                           0x2cce64 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 1394 (vector:1394)
19 grpc                           0x2cc9cc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 494 (work_stealing_thread_pool.cc:494)
20 grpc                           0x2cd210 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 262 (work_stealing_thread_pool.cc:262)
21 grpc                           0x2a2f9c grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 149 (thd.cc:149)
22 libsystem_pthread.dylib        0x637c _pthread_start + 136
23 libsystem_pthread.dylib        0x1494 thread_start + 8   

@jbwise
Copy link

jbwise commented Nov 12, 2024

I don't know if this is helpful at all, but if I build the app and run it with "flutter run", in debug mode, the app will not crash at all. But if I run it with the --release flag, the app fires up and I can get it to crash within a few seconds. I can get it to crash by opening a file_picker dialog and switching the app to the background, to the foreground, over and over... it usually crashes the 3rd or 4th time it comes back to the foreground.

Unfortunately, because it only crashes in release mode, I don't get any debug information or stack trace or anything useful. I'll keep trying to find a way to get more information. We are not able to release any updates to our product until this is resolved, so we're quite dependent on finding a fix!

@cnkygmr
Copy link

cnkygmr commented Nov 13, 2024

same crash cocoapods 1.16.2 xcodeproj 1.27.0

#13996 (comment)

@cnkygmr
Copy link

cnkygmr commented Nov 14, 2024

Cocoapods 1.16.2 ve xcodeproj 1.27.0'a yükselttikten sonra, bu hatalar daha önce pod dosyasına eklediğimiz ['CLANG_CXX_LANGUAGE_STANDARD'] = 'gnu++14' öğesini kaldırmadığım için mi oluşuyor?

@jbwise
Copy link

jbwise commented Nov 14, 2024

I'm going to pass on any information I can collect - hopefully some of it is useful. I attached to the didChangeAppLifecycleState. The crash always occurs in the AppLifecycleState.inactive state (while going from paused to hidden to inactive, before it gets to resumed). My current theory is that there are stream events being processed when the app is coming out of the hidden state... iOS now doesn't like it when memory is allocated for those stream changes during the inactive state - so we need to wait until we get into the resumed state before processing the stream updates.

I don't know all of the details around the streams or the interactions with gRPC or what's going on, but I'm hoping sharing these details will help someone who does.

@jbwise
Copy link

jbwise commented Nov 14, 2024

It seems the listener in FLTQuerySnapshotStreamHandler.m is where the issue begins. Is it possible to wait for the applicationState to be UIApplicationStateActive before it tries allocating the memory?

  dispatch_async(dispatch_get_main_queue(), ^{
    NSMutableArray *toListResult = [[NSMutableArray alloc] initWithCapacity:3];

    NSMutableArray *documents =
        [[NSMutableArray alloc] initWithCapacity:snapshot.documents.count];
    NSMutableArray *documentChanges =
        [[NSMutableArray alloc] initWithCapacity:snapshot.documentChanges.count];

    for (FIRDocumentSnapshot *documentSnapshot in snapshot.documents) {
      [documents addObject:[[FirestorePigeonParser
                               toPigeonDocumentSnapshot:documentSnapshot
                                serverTimestampBehavior:self.serverTimestampBehavior] toList]];
    }

    for (FIRDocumentChange *documentChange in snapshot.documentChanges) {
      [documentChanges
          addObject:[[FirestorePigeonParser toPigeonDocumentChange:documentChange
                                           serverTimestampBehavior:self.serverTimestampBehavior]
                        toList]];
    }

    [toListResult addObject:documents];
    [toListResult addObject:documentChanges];
    [toListResult
        addObject:[[FirestorePigeonParser toPigeonSnapshotMetadata:snapshot.metadata] toList]];

    events(toListResult);
  });

@jbwise
Copy link

jbwise commented Nov 14, 2024

More information! I had a Stream that was loading 430 items from a Firebase datastore. When I updated the query for that stream to only pull 3, all of the crashes went away. Perhaps trying to allocate memory for 430 items is exceeding what iOS is willing to give it? I'm going to see what I can do to reduce the calls to get that object.... but, check for streams returning large sets of data.

@MRtootisabz
Copy link

same error with gRPC, could not read json file

@bdaz
Copy link

bdaz commented Nov 20, 2024

Still seeing this in my crash logs, including with 11.4.2.

@superphil0
Copy link

We have been able to get this as well on our staging environment during testing.
It happened when the app was backgrounded for 5+ minutes coming into foreground again but its not consistently reproducible

#0 0x0000000101fd4470 in grpc_event_engine::experimental::MemoryAllocator::MakeSlice(grpc_event_engine::experimental::MemoryRequest) at /Users/philipp/code/sequel/apps/mobile-app/ios/Pods/gRPC-Core/include/grpc/event_engine/memory_allocator.h:137

iOS 18.1 (22B83)
iPhone 14

@cnkygmr
Copy link

cnkygmr commented Nov 29, 2024

Maybe this would be useful? Crashes occur in 11% of users.

          com.google.firebase.firestore
0  libsystem_kernel.dylib         0xcad4 select$DARWIN_EXTSN$NOCANCEL + 8
1  libsystem_kernel.dylib         0xcad4 __select_nocancel + 8
2  libsystem_dnssd.dylib          0x150c deliver_request + 1108
3  libsystem_dnssd.dylib          0x3ec0 DNSServiceGetAddrInfo + 440
4  grpc                           0xe2c70 grpc_event_engine::experimental::DNSServiceResolverImpl::LookupHostname(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::StatusOr<std::__1::vector<grpc_event_engine::experimental::EventEngine::ResolvedAddress, std::__1::allocator<grpc_event_engine::experimental::EventEngine::ResolvedAddress> > >)>, absl::lts_20240116::string_view, absl::lts_20240116::string_view) + 1832
5  grpc                           0x4ca1c grpc_event_engine::experimental::DNSServiceResolver::LookupHostname(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::StatusOr<std::__1::vector<grpc_event_engine::experimental::EventEngine::ResolvedAddress, std::__1::allocator<grpc_event_engine::experimental::EventEngine::ResolvedAddress> > >)>, absl::lts_20240116::string_view, absl::lts_20240116::string_view) + 80
6  grpc                           0xfb23c grpc_core::(anonymous namespace)::EventEngineClientChannelDNSResolver::StartRequest() + 1060
7  grpc                           0x1d7994 grpc_core::PollingResolver::StartResolvingLocked() + 36
8  grpc                           0xa39b4 grpc_core::ClientChannelFilter::CreateResolverLocked() + 404
9  grpc                           0xa4720 grpc_core::ClientChannelFilter::TryToConnectLocked() + 72
10 grpc                           0x2c54b4 grpc_core::WorkSerializer::LegacyWorkSerializer::DrainQueueOwned() + 352
11 grpc                           0x2c5258 grpc_core::WorkSerializer::LegacyWorkSerializer::Run(std::__1::function<void ()>, grpc_core::DebugLocation const&) + 348
12 grpc                           0x2c635c grpc_core::WorkSerializer::Run(std::__1::function<void ()>, grpc_core::DebugLocation const&) + 80
13 grpc                           0x9f048 grpc_core::ClientChannelFilter::FilterBasedCallData::StartTransportStreamOpBatch(grpc_call_element*, grpc_transport_stream_op_batch*) + 1004
14 grpc                           0x1f5750 grpc_core::promise_filter_detail::BaseCallData::Flusher::~Flusher() + 740
15 grpc                           0x1f8c00 grpc_core::promise_filter_detail::ClientCallData::StartBatch(grpc_transport_stream_op_batch*) + 1136
16 grpc                           0x100cec grpc_core::ExecCtx::Flush() + 156
17 grpc                           0x122d8 grpc_core::ExecCtx::~ExecCtx() + 48
18 grpc                           0x2ade0 grpc_call_start_batch + 144
19 FirebaseFirestoreInternal      0x91788 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpClientSendClose, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6> >::ContinueFillOpsAfterInterception() + 184
20 FirebaseFirestoreInternal      0x8fa7c grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>::Write(grpc::ByteBuffer const&, grpc::WriteOptions, void*) + 136
21 FirebaseFirestoreInternal      0x95944 firebase::firestore::remote::GrpcStream::MaybeWrite(absl::lts_20240116::optional<firebase::firestore::remote::internal::BufferedWrite>) + 192
22 FirebaseFirestoreInternal      0x95840 firebase::firestore::remote::GrpcStream::Write(grpc::ByteBuffer&&) + 56
23 FirebaseFirestoreInternal      0x158138 firebase::firestore::remote::WatchStream::WatchQuery(firebase::firestore::local::TargetData const&) + 200
24 FirebaseFirestoreInternal      0x11e930 firebase::firestore::remote::RemoteStore::SendWatchRequest(firebase::firestore::local::TargetData const&) + 260
25 FirebaseFirestoreInternal      0x11eb3c non-virtual thunk to firebase::firestore::remote::RemoteStore::OnWatchStreamOpen() + 36
26 FirebaseFirestoreInternal      0x12e928 firebase::firestore::remote::Stream::OnStreamStart() + 68
27 FirebaseFirestoreInternal      0x12e87c firebase::firestore::remote::Stream::ResumeStartWithCredentials(firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 196
28 FirebaseFirestoreInternal      0x12febc std::__1::__function::__func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20240116::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken> > const&, absl::lts_20240116::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20240116::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken> > const&, absl::lts_20240116::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&) const::'lambda'()>, void ()>::operator()() + 72
29 FirebaseFirestoreInternal      0x785c firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) + 68
30 FirebaseFirestoreInternal      0x1407ec firebase::firestore::util::Task::ExecuteAndRelease() + 188
31 libdispatch.dylib              0x64094 _dispatch_client_callout + 16
32 libdispatch.dylib              0xa73c _dispatch_lane_serial_drain$VARIANT$mp + 644
33 libdispatch.dylib              0xb1f4 _dispatch_lane_invoke$VARIANT$mp + 408
34 libdispatch.dylib              0x14ec8 _dispatch_workloop_worker_thread + 632
35 libsystem_pthread.dylib        0x1e00 _pthread_wqthread + 284
36 libsystem_pthread.dylib        0x192c start_wqthread + 8
          com.google.firebase.firestore.rpc
0  libsystem_kernel.dylib         0xffd8 poll + 8
1  grpc                           0xf68c4 pollset_work(grpc_pollset*, grpc_pollset_worker**, grpc_core::Timestamp) + 1380
2  grpc                           0xf909c pollset_work(grpc_pollset*, grpc_pollset_worker**, grpc_core::Timestamp) + 88
3  grpc                           0xbf460 cq_next(grpc_completion_queue*, gpr_timespec, void*) + 396
4  grpcpp                         0x12f68 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) + 60
5  FirebaseFirestoreInternal      0x2c174 firebase::firestore::remote::Datastore::PollGrpcQueue() + 84
6  FirebaseFirestoreInternal      0x1407ec firebase::firestore::util::Task::ExecuteAndRelease() + 188
7  libdispatch.dylib              0x3dd4 _dispatch_client_callout + 20
8  libdispatch.dylib              0xb400 _dispatch_lane_serial_drain + 748
9  libdispatch.dylib              0xbf30 _dispatch_lane_invoke + 380
10 libdispatch.dylib              0x16cb4 _dispatch_root_queue_drain_deferred_wlh + 288
11 libdispatch.dylib              0x16528 _dispatch_workloop_worker_thread + 404
12 libsystem_pthread.dylib        0x1f20 _pthread_wqthread + 288
13 libsystem_pthread.dylib        0x1fc0 start_wqthread + 8

@cherylEnkidu
Copy link
Contributor

We have been able to get this as well on our staging environment during testing. It happened when the app was backgrounded for 5+ minutes coming into foreground again but its not consistently reproducible

#0 0x0000000101fd4470 in grpc_event_engine::experimental::MemoryAllocator::MakeSlice(grpc_event_engine::experimental::MemoryRequest) at /Users/philipp/code/sequel/apps/mobile-app/ios/Pods/gRPC-Core/include/grpc/event_engine/memory_allocator.h:137

iOS 18.1 (22B83) iPhone 14

Hi @superphil0 ,

Thank you for this additional information! Our team try to use this way to reproduce the problem but didn't find any clue, could you please let us know which function calling in your app you suspect might lead to problem?

@superphil0
Copy link

We have been able to get this as well on our staging environment during testing. It happened when the app was backgrounded for 5+ minutes coming into foreground again but its not consistently reproducible

#0 0x0000000101fd4470 in grpc_event_engine::experimental::MemoryAllocator::MakeSlice(grpc_event_engine::experimental::MemoryRequest) at /Users/philipp/code/sequel/apps/mobile-app/ios/Pods/gRPC-Core/include/grpc/event_engine/memory_allocator.h:137

iOS 18.1 (22B83) iPhone 14

Hi @superphil0 ,

Thank you for this additional information! Our team try to use this way to reproduce the problem but didn't find any clue, could you please let us know which function calling in your app you suspect might lead to problem?

I am not sure, I suspect it's an observable / firestore listen

@JoshRozin
Copy link

JoshRozin commented Dec 6, 2024

I am experiencing the same issue. We have several firestore listens. My guess would also be that it's a firestore listen causing this issue.

Here's a crashlog from Crashlytics, hope it's helpful. Happy to provide more info:

Crashed: Thread 0

  1. Stompers
    0x1404ed0 on_read(void*, absl::lts_20240116::Status) + 137
    (memory_allocator.h:137)

  2. Stompers
    0x1306c88 grpc_core::ExecCtx::Flush() + 814
    (status.h:814)

  3. Stompers
    0x1246984 grpc_core::ExecCtx::~ExecCtx() + 133
    (exec_ctx.h:133)

  4. Stompers
    0x12f73f8 grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) + 304
    (exec_ctx.h:304)

  5. Stompers
    0x12f777c void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::'lambda'(absl::lts_20240116::Status)&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameterabsl::lts_20240116::Status::type) + 814
    (status.h:814)

  6. Stompers
    0x1279678 grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) + 814
    (status.h:814)

  7. Stompers
    0x127a604 void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::$_1&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameterabsl::lts_20240116::Status::type) + 508
    (any_invocable.h:508)

  8. Stompers
    0x1279e48 grpc_event_engine::experimental::PosixEngineClosure::Run() + 814
    (status.h:814)

  9. Stompers
    0x14642ac grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 1538
    (vector:1538)

  10. Stompers
    0x1463df0 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 494
    (work_stealing_thread_pool.cc:494)

  11. Stompers
    0x1464610 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 262
    (work_stealing_thread_pool.cc:262)

  12. Stompers
    0x1442e9c grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 149
    (thd.cc:149)

  13. libsystem_pthread.dylib
    0x606c _pthread_start + 136

  14. libsystem_pthread.dylib
    0x10d8 thread_start + 8

@UnicornaasTech
Copy link

Experience the same, on several devices, all on iOS version 18.1.1.
For me, happens only occasionally. I'm having a handful of Firestore listeners; only small amounts of data in each, and no big volumes. I'm also loading data from Storage, but also there, not massive amounts of data.

Have not nailed down exactly when this happens, likely whenever there's an update coming from Firestore end towards the device.

image

@bdaz
Copy link

bdaz commented Dec 9, 2024

This seems likely to be an issue with Firestore listeners to me, too. I'm seeing it on App foreground as well.

@adamkoch
Copy link

Running into this as well. Trending issue in crashlytics.

I'm using Flutter and it started happening after upgrading the flutter firestore dep from v5.4.4 to v5.5.0. I'm not sure what firebase-ios-sdk version change that corresponds to.

          Crashed: Thread
0  grpc                           0x23d208 on_read(void*, absl::lts_20240116::Status) + 656
1  grpc                           0x100ccc grpc_core::ExecCtx::Flush() + 156
2  grpc                           0x122d8 grpc_core::ExecCtx::~ExecCtx() + 48
3  grpc                           0xebc28 grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) + 296
4  grpc                           0xebfac void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::'lambda'(absl::lts_20240116::Status)&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 64
5  grpc                           0x4ee80 grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) + 224
6  grpc                           0x4fe30 void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::$_0&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 72
7  grpc                           0x4f644 grpc_event_engine::experimental::PosixEngineClosure::Run() + 124
8  grpc                           0x2c8e64 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 560
9  grpc                           0x2c89cc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
10 grpc                           0x2c9210 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
11 grpc                           0x29ef9c grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
12 libsystem_pthread.dylib        0x3338 _pthread_start + 116
13 libsystem_pthread.dylib        0x1938 thread_start + 8

@xaphod
Copy link
Author

xaphod commented Dec 15, 2024

Hi Google teams any updates here? Lots of crashes, haven't seen an update from you in a week.

Here is another stacktrace that looks different, but I am assuming it is the issue.

          Crashed: Thread
0  grpc                           0x241208 on_read(void*, absl::lts_20240116::Status) + 137 (memory_allocator.h:137)
1  grpc                           0x104ccc grpc_core::ExecCtx::Flush() + 814 (status.h:814)
2  grpc                           0x162d8 grpc_core::ExecCtx::~ExecCtx() + 133 (exec_ctx.h:133)
3  grpc                           0xefc28 grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::FinishPendingRead(absl::lts_20240116::Status) + 304 (exec_ctx.h:304)
4  grpc                           0xeffac void absl::lts_20240116::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::(anonymous namespace)::EventEngineEndpointWrapper::Read(grpc_closure*, grpc_slice_buffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::'lambda'(absl::lts_20240116::Status)&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 814 (status.h:814)
5  grpc                           0x52e80 grpc_event_engine::experimental::CFStreamEndpointImpl::DoRead(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*) + 814 (status.h:814)
6  grpc                           0x53e30 void absl::lts_20240116::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::CFStreamEndpointImpl::Read(absl::lts_20240116::AnyInvocable<void (absl::lts_20240116::Status)>, grpc_event_engine::experimental::SliceBuffer*, grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs const*)::$_0&, absl::lts_20240116::Status>(absl::lts_20240116::internal_any_invocable::TypeErasedState*, absl::lts_20240116::internal_any_invocable::ForwardedParameter<absl::lts_20240116::Status>::type) + 508 (any_invocable.h:508)
7  grpc                           0x53644 grpc_event_engine::experimental::PosixEngineClosure::Run() + 814 (status.h:814)
8  grpc                           0x2cccb4 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 1394 (vector:1394)
9  grpc                           0x2cc9cc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 494 (work_stealing_thread_pool.cc:494)
10 grpc                           0x2cd210 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 262 (work_stealing_thread_pool.cc:262)
11 grpc                           0x2a2f9c grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 149 (thd.cc:149)
12 libsystem_pthread.dylib        0x17d0 _pthread_start + 136
13 libsystem_pthread.dylib        0x1480 thread_start + 8
        

@HannahShiSFB
Copy link

HannahShiSFB commented Dec 18, 2024

For the reported crashes, besides the stack trace, was there similar crash addresses like
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 or SIGSEGV 0x0000000000000000
reported in the two linked issues?

@cherylEnkidu
Copy link
Contributor

For the reported crashes, besides the stack trace, was there similar crash addresses like EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 or SIGSEGV 0x0000000000000000 reported in the two linked issues?

HannahShiSFB is from the grpc-c++ team to help investigate this issue. For developers following this ticket, could you help with this question?

@xaphod
Copy link
Author

xaphod commented Dec 20, 2024

@HannahShiSFB Yes. In the last 7 days I had 21 crashes, and all 21 were like you asked:

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

@estien
Copy link

estien commented Dec 20, 2024

@HannahShiSFB I've had 819 such crashes over the last 7 days: EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 Thanks for looking into it.

@adamkoch
Copy link

@HannahShiSFB Yes, all crashes also have:

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

for me as well.

@bdaz
Copy link

bdaz commented Dec 20, 2024

Can confirm, they're all: EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

@matthewjsloane
Copy link

I'm also experiencing this issue—appears to be related to iOS 18. Any updates here?

@PixelSolve
Copy link

We are experiencing the same issue on iOS, using the latest Unity SDK 12.5.0, and we had the same issue with older versions too.

This is definitely something that would be amazing to be able to solve, our app heavily relies on listeners and it's causing crashes for a lot of users unfortunately.

According to some reports, the app seems to be often crashing when foregrounding the app, but it's not the only situation in which the app crashes.

Are there maybe any workarounds or solutions we could do to make this work until the issue is fully addressed?

Thanks!

@PixelSolve
Copy link

@HannahShiSFB our crashes only have

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

and the stacktrace is very similar to the ones already posted above.

@HannahShiSFB
Copy link

HannahShiSFB commented Dec 30, 2024

Would any of you provide a reproducible example?
I'm not familiar with the firestore, and was using a sample app (which I believe uses listeners) built with ios 18.2 sdk but wasn't able to reproduce on an iphone 8+ or a 12 pro

@xaphod
Copy link
Author

xaphod commented Dec 30, 2024

Hi Google can you please properly resource this issue? It's affecting the main Firebase iOS SDK which is part of the firebase service offering we pay a lot of money for, and depend upon. This issue has been open two months now.
If I had a reproducible sample I would offer it immediately.

@PixelSolve
Copy link

It is quite difficult to provide a reproducible example simply because it doesn't seem to always happen, but often enough where it's really affecting the users.

In our case as I mentioned before, we are using the Unity SDK, which would make it even more difficult to make a good example.

But from what we gathered, there could be a fairly good chance of reproducing the issue by doing following steps (This is definitely not a guarantee and it might not work, but its similar to when the issue seems to happen the most in our case):

  • have a working firestore database and a working SDK on an iOS device
  • create a couple of listeners of different types in firestore(some listeners for individual existing documents, and some for collections to be able to listen for add/change/remove document changes, maybe have 5 listeners for each type)
  • when you have all of those listeners active in a running app, switch to another app so that your testing app will be in the background
  • when you have the app backgrounded, try to do as many changes to the documents and collections in the firestore database as possible (make changes in existing documents that you are listening to, create new documents in the collections that you listen to, remove or change documents in the listened collection)
  • try to keep the app backgrounded for at least 10 minutes
  • if you now try to foreground the app, there could be a good chance of triggering the crash

I am aware that this might seem a little overboard, but this is approximately the situation that we seem to be getting the most crashes at.

I wish we would have more info to give but it really seems difficult to get a good grasp on when exactly this triggers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests