-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Description
Hi everyone,
We are seeing an increase in crashes in our iOS app, which seems to have increased after the release of iOS 26.x. We believe the crash is originating from the Abseil library, but the crash reports are confusing.
Here is what we are seeing:
- Symbolicated Crash Report: The symbolicated stack trace points to a function named
ilmIsNull. However, we do not have any symbol with this name anywhere in our app.
EXC_BAD_ACCESS: Exception 1, Code 1, Subcode 4611686018427435728 >
KERN_INVALID_ADDRESS at 0x400000000000bad0.
libobjc.A 0x191c41b3c objc_release
MyApp 0x1066f8a04 ilmIsNull
MyApp 0x1066d3620 ilmIsNull
MyApp 0x1066d3130 ilmIsNull
MyApp 0x1066d25f0 ilmIsNull
MyApp 0x106729988 ilmIsNull
Foundation 0x19231d250 __NSINDEXSET_IS_CALLING_OUT_TO_A_BOOL_BLOCK__
Foundation 0x19231ce40 -[NSBlockOperation main]
Foundation 0x19231cf70 __NSOPERATION_IS_INVOKING_MAIN__
Foundation 0x19231ca10 -[NSOperation start]
Foundation 0x19231cdd8 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__
Foundation 0x19231c694 __NSOQSchedule_f
libdispatch 0x1cc61644c _dispatch_block_async_invoke2
libdispatch 0x1cc6207e8 _dispatch_client_callout
libdispatch 0x1cc60b660 _dispatch_continuation_pop
libdispatch 0x1cc60acd4 _dispatch_async_redirect_invoke
libdispatch 0x1cc618f44 _dispatch_root_queue_drain
libdispatch 0x1cc6196f8 _dispatch_worker_thread2
libsystem_pthread 0x1efa7f378 _pthread_wqthread
- Unsymbolicated Crash Report: When we look at the unsymbolicated trace, we see this function:
_ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
EXC_BAD_ACCESS: Exception 1, Code 1, Subcode 4611686018427435728 >
KERN_INVALID_ADDRESS at 0x400000000000bad0.
libobjc.A 0x191c41b3c objc_release_x0
MyApp 0x1066f8a08 _ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
MyApp 0x1066d3624 _ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
MyApp 0x1066d3134 _ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
MyApp 0x1066d25f4 _ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
MyApp 0x10672998c _ZN66GMSx_AbslFlagDefaultGenForprotobuf_enable_debug_string_safe_format3GenEPv
Foundation 0x19231d254 <redacted>
Foundation 0x19231ce44 <redacted>
Foundation 0x19231cf74 <redacted>
Foundation 0x19231ca14 <redacted>
Foundation 0x19231cddc <redacted>
Foundation 0x19231c698 <redacted>
libdispatch 0x1cc616450 <redacted>
libdispatch 0x1cc6207ec <redacted>
libdispatch 0x1cc60b664 <redacted>
libdispatch 0x1cc60acd8 <redacted>
libdispatch 0x1cc618f48 <redacted>
libdispatch 0x1cc6196fc <redacted>
libsystem_pthread 0x1efa7f37c _pthread_wqthread
We strongly suspect the crash is in Abseil because the _ZN66GMSx_AbslFlagDefaultGen prefix suggests it's part of the Abseil library, which is a dependency of Firebase SDK, and we were able to find the source code for this exact function in the public Abseil repository.
Our main questions are:
What could be the reason for this crash?
Why is the crash report being incorrectly symbolicated as ilmIsNull?
What is the best way to solve this?
Any help or insights would be appreciated. Thanks!
Reproducing the issue
This is hard to reproduce, happening randomly in production.
Firebase SDK Version
11.2.0
Xcode Version
16.1,26.0.1
Installation Method
Swift Package Manager
Firebase Product(s)
Performance, Remote Config, DynamicLinks
Targeted Platforms
iOS
Relevant Log Output
If using Swift Package Manager, the project's Package.resolved
Expand Package.resolved snippet
{
"originHash" : "9a06f7c038e1ac752815335b888ab332e5b9d0375981275b84b647d822ca0066",
"pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "194a6706acbd25e4ef639bcaddea16e8758a3e27",
"version" : "1.2024011602.0"
}
},
{
"identity" : "app-check",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "61b85103a1aeed8218f17c794687781505fbbef5",
"version" : "11.2.0"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk.git",
"state" : {
"revision" : "1fc52ab0e172e7c5a961f975a76c2611f4f22852",
"version" : "11.2.0"
}
},
{
"identity" : "google-tag-manager-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "git@github.com:googleanalytics/google-tag-manager-ios-sdk.git",
"state" : {
"revision" : "484de314452681ad059200bcda01253ee930b0bb",
"version" : "8.0.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "07a2f57d147d2bf368a0d2dcb5579ff082d9e44f",
"version" : "11.1.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "617af071af9aa1d6a091d59a202910ac482128f9",
"version" : "10.1.0"
}
},
{
"identity" : "googlesignin-ios",
"kind" : "remoteSourceControl",
"location" : "git@github.com:google/GoogleSignIn-iOS.git",
"state" : {
"revision" : "65fb3f1aa6ffbfdc79c4e22178a55cd91561f5e9",
"version" : "8.0.0"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "53156c7ec267db846e6b64c9f4c4e31ba4cf75eb",
"version" : "8.0.2"
}
},
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "f56d8fc3162de9a498377c7b6cea43431f4f5083",
"version" : "1.65.1"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "a2ab612cb980066ee56d90d60d8462992c07f24b",
"version" : "3.5.0"
}
},
{
"identity" : "gtmappauth",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GTMAppAuth.git",
"state" : {
"revision" : "5d7d66f647400952b1758b230e019b07c0b4b22a",
"version" : "4.1.1"
}
},
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
"version" : "100.0.0"
}
},
{
"identity" : "ios-maps-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/googlemaps/ios-maps-sdk.git",
"state" : {
"revision" : "3786e5028d868482ef88140117d33efd60828300",
"version" : "9.1.1"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
"version" : "1.22.5"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "d72aed98f8253ec1aa9ea1141e28150f408cf17f",
"version" : "1.29.0"
}
}
...
...
...
],
"version" : 3
}
If using CocoaPods, the project's Podfile.lock
Expand Podfile.lock snippet
Replace this line with the contents of your Podfile.lock!