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

Crash in - -[FIRAMonitor saveMonitoringDataToUserDefaultsOnMonitorQueue] #431

Closed
nitesh-homage opened this issue Nov 7, 2017 · 48 comments
Closed
Assignees
Milestone

Comments

@nitesh-homage
Copy link

nitesh-homage commented Nov 7, 2017

Firebase SDK version - 4.5.0

App crashed at this function but couldn't understand why? Please help!!!

#6. Crashed: FIRAMonitorQueue
0  libobjc.A.dylib                0x1801201a0 objc_retain + 16
1  UIKit                          0x18ac5cf74 __32+[_UIApplicationCanvas canvases]_block_invoke + 24
2  Foundation                     0x18151d4a4 -[NSBlockPredicate evaluateWithObject:substitutionVariables:] + 212
3  Foundation                     0x18151d358 _filterObjectsUsingPredicate + 360
4  Foundation                     0x18151d154 -[NSArray(NSPredicateSupport) filteredArrayUsingPredicate:] + 280
5  UIKit                          0x18ac5cf28 +[_UIApplicationCanvas canvases] + 172
6  UIKit                          0x18ac5cfc8 +[_UIApplicationCanvas mostActiveCanvas] + 28
7  UIKit                          0x18a0023c4 -[UIApplication isSuspended] + 32
8  UIKit                          0x18a107908 UpdateSystemSoundActiveStatus + 72
9  UIKit                          0x18a107ab8 IsSystemSoundEnabled + 104
10 UIKit                          0x18a1078e8 UpdateSystemSoundActiveStatus + 40
11 UIKit                          0x18a119300 -[UIDevice _updateSystemSoundActiveStatus:] + 144
12 CoreFoundation                 0x180b8212c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
13 CoreFoundation                 0x180b816cc _CFXRegistrationPost + 420
14 CoreFoundation                 0x180b81430 ___CFXNotificationPost_block_invoke + 60
15 CoreFoundation                 0x180bfe9f4 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
16 CoreFoundation                 0x180ab83e0 _CFXNotificationPost + 380
17 Foundation                     0x1814d8498 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
18 HomagePro                      0x100b61ea4 -[FIRAMonitor saveMonitoringDataToUserDefaultsOnMonitorQueue] + 4307623588
19 libdispatch.dylib              0x180575088 _dispatch_call_block_and_release + 24
20 libdispatch.dylib              0x180575048 _dispatch_client_callout + 16
21 libdispatch.dylib              0x1805b31c0 _dispatch_queue_serial_drain$VARIANT$armv81 + 520
22 libdispatch.dylib              0x1805b3b30 _dispatch_queue_invoke$VARIANT$armv81 + 340
23 libdispatch.dylib              0x1805b4528 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 380
24 libdispatch.dylib              0x1805bc5c4 _dispatch_workloop_worker_thread$VARIANT$armv81 + 640
25 libsystem_pthread.dylib        0x18081afe0 _pthread_wqthread + 932
26 libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

--

#0. com.apple.main-thread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  GraphicsServices               0x182947f84 GSEventRunModal + 100
6  UIKit                          0x18a062880 UIApplicationMain + 208
7  HomagePro                      0x1008f1588 main (IntroductionVC.swift:17)
8  libdyld.dylib                  0x1805da56c start + 4

#1. Thread
0  libsystem_kernel.dylib         0x180709dbc __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18081afb0 _pthread_wqthread + 884
2  libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

#2. com.apple.uikit.eventfetch-thread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  Foundation                     0x1814de6e4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6  Foundation                     0x1814fdafc -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7  UIKit                          0x18abae02c -[UIEventFetcher threadMain] + 136
8  Foundation                     0x1815df860 __NSThread__start__ + 996
9  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
10 libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
11 libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#3. Thread
0  libsystem_kernel.dylib         0x180709dbc __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18081b144 _pthread_wqthread + 1288
2  libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

#4. com.apple.NSURLConnectionLoader
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  CFNetwork                      0x18121fb40 +[NSURLConnection(Loader) _resourceLoadLoop:] + 404
6  Foundation                     0x1815df860 __NSThread__start__ + 996
7  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
8  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
9  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#5. Thread
0  libsystem_kernel.dylib         0x180709dbc __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18081afb0 _pthread_wqthread + 884
2  libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

#6. Crashed: FIRAMonitorQueue
0  libobjc.A.dylib                0x1801201a0 objc_retain + 16
1  UIKit                          0x18ac5cf74 __32+[_UIApplicationCanvas canvases]_block_invoke + 24
2  Foundation                     0x18151d4a4 -[NSBlockPredicate evaluateWithObject:substitutionVariables:] + 212
3  Foundation                     0x18151d358 _filterObjectsUsingPredicate + 360
4  Foundation                     0x18151d154 -[NSArray(NSPredicateSupport) filteredArrayUsingPredicate:] + 280
5  UIKit                          0x18ac5cf28 +[_UIApplicationCanvas canvases] + 172
6  UIKit                          0x18ac5cfc8 +[_UIApplicationCanvas mostActiveCanvas] + 28
7  UIKit                          0x18a0023c4 -[UIApplication isSuspended] + 32
8  UIKit                          0x18a107908 UpdateSystemSoundActiveStatus + 72
9  UIKit                          0x18a107ab8 IsSystemSoundEnabled + 104
10 UIKit                          0x18a1078e8 UpdateSystemSoundActiveStatus + 40
11 UIKit                          0x18a119300 -[UIDevice _updateSystemSoundActiveStatus:] + 144
12 CoreFoundation                 0x180b8212c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
13 CoreFoundation                 0x180b816cc _CFXRegistrationPost + 420
14 CoreFoundation                 0x180b81430 ___CFXNotificationPost_block_invoke + 60
15 CoreFoundation                 0x180bfe9f4 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
16 CoreFoundation                 0x180ab83e0 _CFXNotificationPost + 380
17 Foundation                     0x1814d8498 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
18 HomagePro                      0x100b61ea4 -[FIRAMonitor saveMonitoringDataToUserDefaultsOnMonitorQueue] + 4307623588
19 libdispatch.dylib              0x180575088 _dispatch_call_block_and_release + 24
20 libdispatch.dylib              0x180575048 _dispatch_client_callout + 16
21 libdispatch.dylib              0x1805b31c0 _dispatch_queue_serial_drain$VARIANT$armv81 + 520
22 libdispatch.dylib              0x1805b3b30 _dispatch_queue_invoke$VARIANT$armv81 + 340
23 libdispatch.dylib              0x1805b4528 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 380
24 libdispatch.dylib              0x1805bc5c4 _dispatch_workloop_worker_thread$VARIANT$armv81 + 640
25 libsystem_pthread.dylib        0x18081afe0 _pthread_wqthread + 932
26 libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

#7. com.twitter.crashlytics.ios.MachExceptionServer
0  HomagePro                      0x100afd8d4 CLSProcessRecordAllThreads (CLSProcess.c:376)
1  HomagePro                      0x100afd8d4 CLSProcessRecordAllThreads (CLSProcess.c:376)
2  HomagePro                      0x100afd784 CLSProcessRecordAllThreads (CLSProcess.c:407)
3  HomagePro                      0x100aeda44 CLSHandler (CLSHandler.m:26)
4  HomagePro                      0x100ae8a04 CLSMachExceptionServer (CLSMachException.c:446)
5  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
6  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
7  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#8. Thread
0  libsystem_kernel.dylib         0x180709dbc __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18081b144 _pthread_wqthread + 1288
2  libsystem_pthread.dylib        0x18081ac30 start_wqthread + 4

#9. com.squareup.SocketRocket.NetworkThread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  Foundation                     0x1814de6e4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6  HomagePro                      0x100c2a6f8 -[_FSRRunLoopThread main] + 4308444920
7  Foundation                     0x1815df860 __NSThread__start__ + 996
8  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
9  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
10 libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#10. com.apple.CFSocket.private
0  libsystem_kernel.dylib         0x180709570 __select + 8
1  CoreFoundation                 0x180ba021c __CFSocketManager + 644
2  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
3  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
4  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#11. Thread
0  libsystem_kernel.dylib         0x180709150 __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x180822fd0 _pthread_cond_wait$VARIANT$armv81 + 624
2  libc++.1.dylib                 0x180087ea4 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
3  JavaScriptCore                 0x187e34b30 void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&) + 96
4  JavaScriptCore                 0x187e34a58 bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() + 172
5  JavaScriptCore                 0x187e34dbc void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*), bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*> >(void*) + 44
6  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
7  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
8  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#12. WebThread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  WebCore                        0x188905ac4 RunWebThread(void*) + 456
6  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
7  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
8  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#13. com.apple.CoreMotion.MotionThread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  CoreFoundation                 0x180b0512c CFRunLoopRun + 116
6  CoreMotion                     0x185e9a088 (null) + 227076
7  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
8  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
9  libsystem_pthread.dylib        0x18081ac38 thread_start + 4

#14. AVAudioSession Notify Thread
0  libsystem_kernel.dylib         0x1806e8bc4 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1806e8a3c mach_msg + 72
2  CoreFoundation                 0x180b97ce4 __CFRunLoopServiceMachPort + 196
3  CoreFoundation                 0x180b958b0 __CFRunLoopRun + 1424
4  CoreFoundation                 0x180ab62d8 CFRunLoopRunSpecific + 436
5  AVFAudio                       0x18637f774 GenericRunLoopThread::Entry(void*) + 164
6  AVFAudio                       0x1863aa018 CAPThread::Entry(CAPThread*) + 84
7  libsystem_pthread.dylib        0x18081c32c _pthread_body + 308
8  libsystem_pthread.dylib        0x18081c1f8 _pthread_body + 310
9  libsystem_pthread.dylib        0x18081ac38 thread_start + 4
@morganchen12
Copy link
Contributor

@nitesh-homage are you able to reproduce this bug, even inconsistently? If so, can you try reproing the issue with NSZombies/tsan enabled? If not, and this bug reappears, please add any additional stack traces to this bug--the more information we have, the better.

@castleche
Copy link

I've seen similar crashes, most in iOS 11. The top of the crash stack is:

Thread 25 Crashed:
0   libobjc.A.dylib                 objc_retain + 16
1   CoreFoundation                  +[__NSArrayI __new::::] + 184
2   CoreFoundation                  -[NSArray initWithArray:range:copyItems:] + 396
3   UIKit                           +[_UICanvas canvases] + 32
4   UIKit                           +[_UIApplicationCanvas canvases] + 56
5   UIKit                           +[_UIApplicationCanvas mostActiveCanvas] + 28
6   UIKit                           -[UIApplication isSuspendedEventsOnly] + 32
7   UIKit                           UpdateSystemSoundActiveStatus + 116
8   UIKit                           IsSystemSoundEnabled + 104
9   UIKit                           UpdateSystemSoundActiveStatus + 40
10  UIKit                           -[UIDevice _updateSystemSoundActiveStatus:] + 144
11  CoreFoundation                  __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
12  CoreFoundation                  _CFXRegistrationPost + 420
13  CoreFoundation                  ___CFXNotificationPost_block_invoke + 60
14  CoreFoundation                  -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
15  CoreFoundation                  _CFXNotificationPost + 380
16  Foundation                      -[NSNotificationCenter postNotificationName:object:userInfo:] + 68

I have no idea why this happens, or how to reproduce the crash. But I think it is an Apple bug, because it access UI elements in background thread.

Let me know if you have any thoughts.

@baolocdo
Copy link

baolocdo commented Nov 8, 2017

Are you listening to any NSUserDefaults changes? It looks like you are updating the UI on a background queue of Firebase Analytics when it updates the NSUserDefaults.

@morganchen12
Copy link
Contributor

morganchen12 commented Nov 8, 2017

Ah yeah I see. Notifications are not guaranteed to be delivered on the main queue--if you're doing UI work in a notification handler, remember to dispatch to the main queue.

Looks like this isn't caused by the app developer listening to the NSUserDefaults change notification though (context).

@castleche
Copy link

castleche commented Nov 10, 2017

Are you listening to any NSUserDefaults changes?

@baolocdo I didn't listen to NSUserDefaults changes. Line 17 is a call to -[NSUserDefaults setObject:forKey:], but line 16 is a call to -[NSNotificationCenter postNotificationName:object:userInfo:]. I don't know how it happens.

@castleche
Copy link

Ah yeah I see. Notifications are not guaranteed to be delivered on the main queue--if you're doing UI work in a notification handler, remember to dispatch to the main queue.

@morganchen12 The problem is that I call -[NSUserDefaults setObject:forKey:] in line 17 (missing in the call stack). I don't know why notifications appear in the call stack.

@baolocdo
Copy link

baolocdo commented Nov 10, 2017

iOS allows listening to NSUserDefaults changes by adding an observer to it: https://developer.apple.com/documentation/foundation/nsuserdefaultsdidchangenotification . When the SDK updates NSUserDefaults, the system notifies its observers automatically. That's why you can see on the line:
17 Foundation 0x1814d8498 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
It was originated from "Foundation". It seems to me that there is a private code from the system that listens to this change automatically:
8 UIKit 0x18a107908 UpdateSystemSoundActiveStatus + 72
9 UIKit 0x18a107ab8 IsSystemSoundEnabled + 104
10 UIKit 0x18a1078e8 UpdateSystemSoundActiveStatus + 40
11 UIKit 0x18a119300 -[UIDevice _updateSystemSoundActiveStatus:] + 144

@castleche
Copy link

@baolocdo So it seems a system bug. Are you able to file a bug to Apple?

@baolocdo
Copy link

Let me file a bug to Apple and see whether they can fix that. Thanks for reporting.

@castleche
Copy link

@baolocdo Did you hear anything from Apple? Can you please add me to cc line (if possible)?

@baolocdo
Copy link

No, I haven't received anything from them :(

@baolocdo
Copy link

Today Apple closed the bug I filed as duplicate with 35323490. I couldn't access to the original bug report though.

Engineering has determined that your bug report is a duplicate of another issue and will be closed.

The open or closed status of the original report your bug was duplicated to appears in a text box within the bug detail section of the bug reporter user interface. For security and privacy reasons, we don't provide access to the original bug yours was duped to.

@castleche
Copy link

Thank you @baolocdo ! I'll file a bug too, since Apple uses duplicates as a measure of priority.

@qmkCamel
Copy link

Anything update ?

@morganchen12
Copy link
Contributor

None yet.

Since it's a bug in UIKit, the fix will come through an update to iOS, and will only resolve the issue for users on that version of iOS or later. Apple may not tell us when they release the fix.

@g-mark
Copy link

g-mark commented Dec 15, 2017

Are there any workarounds for this, while waiting for Apple? This is now our top crasher.

@morganchen12
Copy link
Contributor

morganchen12 commented Dec 18, 2017

Unfortunately there isn't. The Firebase team can work around this by forcing the userdefaults change on the main queue, so the listener in UIKit no longer crashes (probably).

@baolocdo is currently looking into that--it's likely the action we'll go with at the cost of a little cruft in Firebase core.

@g-mark
Copy link

g-mark commented Dec 18, 2017

@morganchen12, @baolocdo - Thank you. Sounds like a reasonable trade-off.

@g-mark
Copy link

g-mark commented Jan 25, 2018

Is there any update on this?

@morganchen12
Copy link
Contributor

None yet :(

@AzenXu
Copy link

AzenXu commented Feb 27, 2018

What about now? We have same crash track with @castleche ... from iOS-11.0 to 11.2.5... awful...

@JienLee
Copy link

JienLee commented Feb 28, 2018

We has same crash track with @castleche and same function crash get diferrent trace.

#11. Crashed: FIRAMonitorQueue
0 libobjc.A.dylib 0x18591c1a0 objc_retain + 16
1 CoreFoundation 0x1866ff334 +[__NSArrayI __new::::] + 184
2 CoreFoundation 0x186583388 -[NSArray initWithArray:range:copyItems:] + 396
3 UIKit 0x1904485a4 +[_UICanvas canvases] + 32
4 UIKit 0x1908f6f8c +[_UIApplicationCanvas canvases] + 56
5 UIKit 0x1908f70a0 +[_UIApplicationCanvas mostActiveCanvas] + 28
6 UIKit 0x18fcdaf10 -[UIApplication isSuspendedEventsOnly] + 32
7 UIKit 0x18fd78758 UpdateSystemSoundActiveStatus + 116
8 UIKit 0x18fd788dc IsSystemSoundEnabled + 104
9 UIKit 0x18fd7870c UpdateSystemSoundActiveStatus + 40
10 UIKit 0x18fd8a1a8 -[UIDevice _updateSystemSoundActiveStatus:] + 144
11 CoreFoundation 0x18664913c CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 20
12 CoreFoundation 0x1866486dc _CFXRegistrationPost + 420
13 CoreFoundation 0x186648440 ___CFXNotificationPost_block_invoke + 60
14 CoreFoundation 0x1866c5e24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
15 CoreFoundation 0x18657ed60 _CFXNotificationPost + 380
16 Foundation 0x186fab348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
17 {MyAppName} 0x104199b78 -[FIRAMonitor saveMonitoringDataToUserDefaultsOnMonitorQueue] + 4296252280
18 libdispatch.dylib 0x186036a54 _dispatch_call_block_and_release + 24
19 libdispatch.dylib 0x186036a14 _dispatch_client_callout + 16
20 libdispatch.dylib 0x18607504c _dispatch_queue_serial_drain$VARIANT$armv81 + 520
21 libdispatch.dylib 0x1860759bc _dispatch_queue_invoke$VARIANT$armv81 + 340
22 libdispatch.dylib 0x1860763a8 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 384
23 libdispatch.dylib 0x18607e4b0 _dispatch_workloop_worker_thread$VARIANT$armv81 + 640
24 libsystem_pthread.dylib 0x1862def1c _pthread_wqthread + 932
25 libsystem_pthread.dylib 0x1862deb6c start_wqthread +

#0. com.apple.main-thread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 GraphicsServices 0x188428f84 GSEventRunModal + 100
6 UIKit 0x18fcd55c4 UIApplicationMain + 236
7 {MyAppName} 0x1040bbf58 main (main.m:14)
8 libdyld.dylib 0x18609c56c start + 4

#1. Thread
0 libsystem_kernel.dylib 0x1861cc0f0 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x1862e6f74 _pthread_cond_wait$VARIANT$armv81 + 624
2 libc++.1.dylib 0x185883f34 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 96
3 JavaScriptCore 0x18da25168 std::__1::cv_status std::__1::condition_variable::wait_until<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 124
4 JavaScriptCore 0x18da2503c std::__1::cv_status std::__1::condition_variable_any::wait_until<std::__1::unique_lockbmalloc::Mutex, std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lockbmalloc::Mutex&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 108
5 JavaScriptCore 0x18da24ec0 bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::)()>::threadRunLoop() + 280
6 JavaScriptCore 0x18da251b8 void
std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, void ()(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::)()>), bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::)()>> >(void) + 44
7 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
8 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
9 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#2. WebThread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 WebCore 0x18e4f184c RunWebThread(void*) + 560
6 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
7 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
8 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#3. com.apple.uikit.eventfetch-thread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 Foundation 0x186fb1594 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x186fd09ac -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x19083f7a8 -[UIEventFetcher threadMain] + 136
8 Foundation 0x1870b30f4 NSThread__start + 996
9 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
10 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
11 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#4. com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 CFNetwork 0x186e6bb08 -[__CoreSchedulingSetRunnable runForever] + 780
6 Foundation 0x1870b30f4 NSThread__start + 996
7 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
8 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
9 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#5. com.squareup.SocketRocket.NetworkThread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 Foundation 0x186fb1594 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 {MyAppName} 0x104240234 -[_FSRRunLoopThread main] + 4296933940
7 Foundation 0x1870b30f4 NSThread__start + 996
8 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
9 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
10 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#6. com.twitter.crashlytics.ios.MachExceptionServer
0 {MyAppName} 0x10412ee6c CLSProcessRecordAllThreads + 4295814764
1 {MyAppName} 0x10412ee6c CLSProcessRecordAllThreads + 4295814764
2 {MyAppName} 0x10412ed28 CLSProcessRecordAllThreads + 4295814440
3 {MyAppName} 0x10411ea78 CLSHandler + 4295748216
4 {MyAppName} 0x104119a8c CLSMachExceptionServer + 4295727756
5 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
6 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
7 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#7. GAIThread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 Foundation 0x186fb1594 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x18700356c -[NSRunLoop(NSRunLoop) run] + 88
7 {MyAppName} 0x10437fe80 +[GAI threadMain:] + 4298243712
8 Foundation 0x1870b30f4 NSThread__start + 996
9 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
10 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
11 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#8. com.apple.CFSocket.private
0 libsystem_kernel.dylib 0x1861cc534 __select + 8
1 CoreFoundation 0x186667640 __CFSocketManager + 644
2 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
3 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
4 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#9. AVAudioSession Notify Thread
0 libsystem_kernel.dylib 0x1861ab568 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1861ab3e0 mach_msg + 72
2 CoreFoundation 0x18665f108 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x18665ccd4 __CFRunLoopRun + 1424
4 CoreFoundation 0x18657cc58 CFRunLoopRunSpecific + 436
5 AVFAudio 0x18bee5cd4 GenericRunLoopThread::Entry(void*) + 164
6 AVFAudio 0x18bf10740 CAPThread::Entry(CAPThread*) + 84
7 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
8 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
9 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#10. WebCore: LocalStorage
0 libsystem_kernel.dylib 0x1861cc0f0 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x1862e6f74 _pthread_cond_wait$VARIANT$armv81 + 624
2 JavaScriptCore 0x18d08a0dc WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 80
3 JavaScriptCore 0x18da0a33c WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2256
4 WebKitLegacy 0x18f9616dc bool WTF::ConditionBase::waitUntilWTF::Lock(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 172
5 WebKitLegacy 0x18f964384 std::__1::unique_ptr<WTF::Function<void ()>, std::__1::default_delete<WTF::Function<void ()> > > WTF::MessageQueue<WTF::Function<void ()> >::waitForMessageFilteredWithTimeout<WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)>(WTF::MessageQueueWaitResult&, WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)&&, WTF::WallTime) + 148
6 WebKitLegacy 0x18f963ab0 WebCore::StorageThread::threadEntryPoint() + 68
7 JavaScriptCore 0x18d0864ec WTF::threadEntryPoint(void*) + 120
8 JavaScriptCore 0x18d08642c WTF::wtfThreadEntryPoint(void*) + 84
9 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
10 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
11 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#11. Crashed: FIRAMonitorQueue
0 libobjc.A.dylib 0x18591c1a0 objc_retain + 16
1 CoreFoundation 0x1866ff334 +[__NSArrayI __new::::] + 184
2 CoreFoundation 0x186583388 -[NSArray initWithArray:range:copyItems:] + 396
3 UIKit 0x1904485a4 +[_UICanvas canvases] + 32
4 UIKit 0x1908f6f8c +[_UIApplicationCanvas canvases] + 56
5 UIKit 0x1908f70a0 +[_UIApplicationCanvas mostActiveCanvas] + 28
6 UIKit 0x18fcdaf10 -[UIApplication isSuspendedEventsOnly] + 32
7 UIKit 0x18fd78758 UpdateSystemSoundActiveStatus + 116
8 UIKit 0x18fd788dc IsSystemSoundEnabled + 104
9 UIKit 0x18fd7870c UpdateSystemSoundActiveStatus + 40
10 UIKit 0x18fd8a1a8 -[UIDevice _updateSystemSoundActiveStatus:] + 144
11 CoreFoundation 0x18664913c CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 20
12 CoreFoundation 0x1866486dc _CFXRegistrationPost + 420
13 CoreFoundation 0x186648440 ___CFXNotificationPost_block_invoke + 60
14 CoreFoundation 0x1866c5e24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
15 CoreFoundation 0x18657ed60 _CFXNotificationPost + 380
16 Foundation 0x186fab348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
17 {MyAppName} 0x104199b78 -[FIRAMonitor saveMonitoringDataToUserDefaultsOnMonitorQueue] + 4296252280
18 libdispatch.dylib 0x186036a54 _dispatch_call_block_and_release + 24
19 libdispatch.dylib 0x186036a14 _dispatch_client_callout + 16
20 libdispatch.dylib 0x18607504c _dispatch_queue_serial_drain$VARIANT$armv81 + 520
21 libdispatch.dylib 0x1860759bc _dispatch_queue_invoke$VARIANT$armv81 + 340
22 libdispatch.dylib 0x1860763a8 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 384
23 libdispatch.dylib 0x18607e4b0 _dispatch_workloop_worker_thread$VARIANT$armv81 + 640
24 libsystem_pthread.dylib 0x1862def1c _pthread_wqthread + 932
25 libsystem_pthread.dylib 0x1862deb6c start_wqthread + 4

#12. Thread
0 libsystem_kernel.dylib 0x1861ccd80 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1862df080 _pthread_wqthread + 1288
2 libsystem_pthread.dylib 0x1862deb6c start_wqthread + 4

#13. Thread
0 libsystem_kernel.dylib 0x1861ccd80 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1862deeec _pthread_wqthread + 884
2 libsystem_pthread.dylib 0x1862deb6c start_wqthread + 4

#14. Thread
0 libsystem_kernel.dylib 0x1861ccd80 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1862deeec _pthread_wqthread + 884
2 libsystem_pthread.dylib 0x1862deb6c start_wqthread + 4

#15. Thread
0 libsystem_kernel.dylib 0x1861ccd80 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1862df080 _pthread_wqthread + 1288
2 libsystem_pthread.dylib 0x1862deb6c start_wqthread + 4

#16. Thread
0 libsystem_kernel.dylib 0x1861ab5bc semaphore_timedwait_trap + 8
1 libdispatch.dylib 0x186067fe0 _dispatch_sema4_timedwait$VARIANT$armv81 + 84
2 libdispatch.dylib 0x18606884c _dispatch_semaphore_wait_slow + 72
3 libdispatch.dylib 0x186079710 _dispatch_worker_thread + 248
4 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
5 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
6 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#17. Thread
0 libsystem_kernel.dylib 0x1861ab5bc semaphore_timedwait_trap + 8
1 libdispatch.dylib 0x186067fe0 _dispatch_sema4_timedwait$VARIANT$armv81 + 84
2 libdispatch.dylib 0x18606884c _dispatch_semaphore_wait_slow + 72
3 libdispatch.dylib 0x186079710 _dispatch_worker_thread + 248
4 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
5 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
6 libsystem_pthread.dylib 0x1862deb74 thread_start + 4

#18. Thread
0 libsystem_kernel.dylib 0x1861ab5bc semaphore_timedwait_trap + 8
1 libdispatch.dylib 0x186067fe0 _dispatch_sema4_timedwait$VARIANT$armv81 + 84
2 libdispatch.dylib 0x18606884c _dispatch_semaphore_wait_slow + 72
3 libdispatch.dylib 0x186079710 _dispatch_worker_thread + 248
4 libsystem_pthread.dylib 0x1862e02b4 _pthread_body + 308
5 libsystem_pthread.dylib 0x1862e0180 _pthread_body + 310
6 libsystem_pthread.dylib 0x1862deb74 thread_start + 4`

@rdamiano
Copy link

rdamiano commented Mar 7, 2018

Same issue. Getting things like:

Crashed: FIRAMonitorQueue
0  libobjc.A.dylib                0x1821841a0 objc_retain + 16
1  CoreFoundation                 0x182f67334 +[__NSArrayI __new::::] + 184
2  CoreFoundation                 0x182deb388 -[NSArray initWithArray:range:copyItems:] + 396
3  UIKit                          0x18ccb05a4 +[_UICanvas canvases] + 32
4  UIKit                          0x18d15ef8c +[_UIApplicationCanvas canvases] + 56
5  UIKit                          0x18d15f0a0 +[_UIApplicationCanvas mostActiveCanvas] + 28
6  UIKit                          0x18c542f10 -[UIApplication isSuspendedEventsOnly] + 32
7  UIKit                          0x18c5e0758 UpdateSystemSoundActiveStatus + 116
8  UIKit                          0x18c5e08dc IsSystemSoundEnabled + 104
9  UIKit                          0x18c5e070c UpdateSystemSoundActiveStatus + 40
10 UIKit                          0x18c5f21a8 -[UIDevice _updateSystemSoundActiveStatus:] + 144
11 CoreFoundation                 0x182eb113c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
12 CoreFoundation                 0x182eb06dc _CFXRegistrationPost + 420
13 CoreFoundation                 0x182eb0440 ___CFXNotificationPost_block_invoke + 60
14 CoreFoundation                 0x182f2de24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408
15 CoreFoundation                 0x182de6d60 _CFXNotificationPost + 380
16 Foundation                     0x183813348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
17 APPNAME                   0x103bda8f0 FIRAIsValidConditionalUserProperty + 214096
18 libdispatch.dylib              0x18289ea54 _dispatch_call_block_and_release + 24
19 libdispatch.dylib              0x18289ea14 _dispatch_client_callout + 16
20 libdispatch.dylib              0x1828dd04c _dispatch_queue_serial_drain$VARIANT$armv81 + 520
21 libdispatch.dylib              0x1828dd9bc _dispatch_queue_invoke$VARIANT$armv81 + 340
22 libdispatch.dylib              0x1828de3a8 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 384
23 libdispatch.dylib              0x1828e64b0 _dispatch_workloop_worker_thread$VARIANT$armv81 + 640
24 libsystem_pthread.dylib        0x182b46f1c _pthread_wqthread + 932
25 libsystem_pthread.dylib        0x182b46b6c start_wqthread + 4

And

Fatal Exception: NSRangeException
0  CoreFoundation                 0x18176e364 __exceptionPreprocess
1  libobjc.A.dylib                0x1809b4528 objc_exception_throw
2  CoreFoundation                 0x181706e9c _CFArgv
3  CoreFoundation                 0x18163a8ac -[__NSArrayM getObjects:range:]
4  CoreFoundation                 0x18163a4f0 -[NSArray initWithArray:range:copyItems:]
5  UIKit                          0x18b4fb5d0 +[_UICanvas canvases]
6  UIKit                          0x18b9a9f9c +[_UIApplicationCanvas canvases]
7  UIKit                          0x18b9aa0b0 +[_UIApplicationCanvas mostActiveCanvas]
8  UIKit                          0x18ad282a8 -[UIApplication isSuspended]
9  UIKit                          0x18ae2b88c UpdateSystemSoundActiveStatus
10 UIKit                          0x18ae3d23c -[UIDevice _updateSystemSoundActiveStatus:]
11 CoreFoundation                 0x18170033c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
12 CoreFoundation                 0x1816ff8dc _CFXRegistrationPost
13 CoreFoundation                 0x1816ff640 ___CFXNotificationPost_block_invoke
14 CoreFoundation                 0x18177d024 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
15 CoreFoundation                 0x181635f60 _CFXNotificationPost
16 Foundation                     0x182063348 -[NSNotificationCenter postNotificationName:object:userInfo:]
17 APPNAME                   0x101d868f0 FIRAIsValidConditionalUserProperty
18 libdispatch.dylib              0x1810eaa54 _dispatch_call_block_and_release
19 libdispatch.dylib              0x1810eaa14 _dispatch_client_callout
20 libdispatch.dylib              0x18112904c _dispatch_queue_serial_drain$VARIANT$armv81
21 libdispatch.dylib              0x1811299bc _dispatch_queue_invoke$VARIANT$armv81
22 libdispatch.dylib              0x18112a3a8 _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81
23 libdispatch.dylib              0x1811324b0 _dispatch_workloop_worker_thread$VARIANT$armv81
24 libsystem_pthread.dylib        0x181392f1c _pthread_wqthread
25 libsystem_pthread.dylib        0x181392b6c start_wqthread

Both have in common that "FIRAIsValidConditionalUserProperty" line.

@paulb777
Copy link
Member

paulb777 commented Mar 7, 2018

Tracking internally at b/64945474

@morganchen12
Copy link
Contributor

Hey all,

We have a pending fix for this bug. It'll be undergoing some review before it's released, but we hope to have this resolved soon.

@rdamiano
Copy link

nice thanks for the notification

@chuganzy
Copy link

chuganzy commented Mar 27, 2018

@morganchen12
Copy link
Contributor

Not yet. The fix brings a lot of complexity, so it's likely to be in review for a while.

b/64945474 is the internal bug number.

@chuganzy
Copy link

@morganchen12 Thank you for letting me know!

@katowulf
Copy link

We have a beta SDK available that addresses cases where NSUserDefaults are being written off the main thread and hopefully this bug. If you're interested in trying it out, please shoot me an email: katowulf at google.

@asifmujteba
Copy link

@castleche
Copy link

castleche commented Apr 8, 2018

@JienLee @AzenXu @rdamiano
We are going to work around this problem by redirecting all -[NSUserDefaults setObject:forKey:] calls to main queue. This is ugly but it should work.

@levantAJ
Copy link

@katowulf Hi, can you please confirm is this issue is fixed and included in latest sdk (4.13.0)? Thanks.

@rdamiano
Copy link

@levantAJ updated firebase to 4.13.0, still getting saveMonitoringDataToUserDefaultsOnMonitorQueue crashes, all in iOS 11

come on guys, months later, this is grounds for removing firebase from my app, this is Google???

@baolocdo
Copy link

As @katowulf stated above that we have a potential fix but we need some help in determine whether it is safe to release. We are actively working on the bug, we understand that it is frustrating to wait and we would like to fix it as soon as possible. Please contact @katowulf if you can help us try out the fix. Thanks.

@kubbing
Copy link

kubbing commented Jun 4, 2018

yo guys any update on this one?

@matvdg
Copy link

matvdg commented Jun 12, 2018

Still crashing for us... we're using Firebase 5.0.1. Did the last version finally fix it? (the iOS changelog doesn't mention it) Any update??? @katowulf @morganchen12 @Narayane Thanks!
firebase crash

@rdamiano
Copy link

Yes I'm not sure what this is about, I'm not doing anything "special" with Firebase Analytics with my iOS app and this is one of the biggest crashes, so I have to believe it's happening to everyone...for months.

I contacted @katowulf for the potential fix to download, he told me something like "looks like the fix has already been verified"?

@baolocdo
Copy link

Can you upgrade to the latest Analytics SDK, and add the flag UseCFPreferencesLibrary=YES in the Info.plist? Please let us know whether it fixes the crashes

@matvdg
Copy link

matvdg commented Jun 13, 2018

Hi, thanks. We'll try this in our next release and get back to you asap for feedback. @rdamiano we have encountered this issue for more than one year, but it's quite minor as we have only a few user sessions crashing over thousand at each release.

@Narayane
Copy link

@baolocdo Hi, your fix seems to work, thanks

@baolocdo
Copy link

baolocdo commented Jul 9, 2018

Apple asked to verify the fix by using the iOS 12 beta seed. Since I can't reproduce the issue, can any of you confirm the fix (without Analytics' flag)? Thanks

@morganchen12
Copy link
Contributor

Hey all, given the response to the flagged fix we're going to enable the flag by default in the next update of Firebase.

I'll close this issue for now, it'll go out with the M30 milestone in the next Analytics release. If it regresses after that, please comment here and I'll re-open the issue.

Thanks all!

@morganchen12 morganchen12 added this to the M30 milestone Jul 11, 2018
@mvorisis
Copy link

Hi is the flag added in info.plist to the 5.4.1 version? Thanks!

@baolocdo
Copy link

The latest version has the Info.plist flag. Please update to the latest version. The flag will be on by default in subsequent release.

@mvorisis
Copy link

Hi I updated the firebase but I don't see this flag. Will it be in the project's info.plist or somewhere else? Thanks for your quick response

@morganchen12
Copy link
Contributor

You'll need to add the key-value pair in the plist yourself.

@firebase firebase locked and limited conversation to collaborators Nov 11, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.