mixpanel/mixpanel-iphone

Crash on Mixpanel - 3.3.8 addPeopleRecordToQueueWithAction:andProperties

elanarul opened this issue · 6 comments

**Integration Method: CocoaPods (Pod MixPanel - objc version)
**Xcode Version: 10.1
**Library Version: 3.3.8
Platform: iOS
Language: Swift
Description:
Seeing few crashes with MisPanel SDk in Crashlytics
Crashes on MixpanelPeople.m line 124
__65-[MixpanelPeople addPeopleRecordToQueueWithAction:andProperties:]_block_invoke

Fatal Exception: NSInvalidArgumentException
-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x10393f4b0

Expected Behavior:
Should not crash

Crash Logs

Crashlytics - plaintext stacktrace downloaded by Elan Arulraj at Wed, 16 Jan 2019 19:28:35 GMT
Version: 4.0 (201901151729)
Date: 2019-01-15T23:22:00Z
OS Version: 12.1.3 (16D5032a)
Device: iPhone X
RAM Free: 2%
Disk Free: 69.2%

#6. Crashed: com.twitter.crashlytics.ios.exception
0 Voxer.io 0x100e43a04 CLSProcessRecordAllThreads
1 Voxer.io 0x100e43ec4 CLSProcessRecordAllThreads
2 Voxer.io 0x100e33708 CLSHandler
3 Voxer.io 0x100e42008 __CLSExceptionRecord_block_invoke
4 libdispatch.dylib 0x1ce9ae484 _dispatch_client_callout + 16
5 libdispatch.dylib 0x1ce98e744 _dispatch_lane_barrier_sync_invoke_and_complete + 56
6 Voxer.io 0x100e41a78 CLSExceptionRecord
7 Voxer.io 0x100e418a8 CLSExceptionRecordNSException
8 Voxer.io 0x100e414a0 CLSTerminateHandler()
9 libc++abi.dylib 0x1ce1390fc std::__terminate(void (*)()) + 16
10 libc++abi.dylib 0x1ce139188 std::terminate() + 84
11 libobjc.A.dylib 0x1ce145db4 _destroyAltHandlerList + 10
12 libdispatch.dylib 0x1ce9ae498 _dispatch_client_callout + 36
13 libdispatch.dylib 0x1ce988fa0 _dispatch_lane_serial_drain$VARIANT$armv81 + 548
14 libdispatch.dylib 0x1ce989ae4 _dispatch_lane_invoke$VARIANT$armv81 + 412
15 libdispatch.dylib 0x1ce991f04 _dispatch_workloop_worker_thread + 584
16 libsystem_pthread.dylib 0x1ceb910dc _pthread_wqthread + 312
17 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

--

Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x1cef74ec4 __exceptionPreprocess
1 libobjc.A.dylib 0x1ce145a50 objc_exception_throw
2 CoreFoundation 0x1cee8dc24 -[NSOrderedSet initWithSet:copyItems:]
3 CoreFoundation 0x1cef7a7dc forwarding
4 CoreFoundation 0x1cef7c48c _CF_forwarding_prep_0
5 Voxer.io 0x100c660e4 __65-[MixpanelPeople addPeopleRecordToQueueWithAction:andProperties:]_block_invoke (MixpanelPeople.m:124)
6 libdispatch.dylib 0x1ce9ad6c8 _dispatch_call_block_and_release
7 libdispatch.dylib 0x1ce9ae484 _dispatch_client_callout
8 libdispatch.dylib 0x1ce988fa0 _dispatch_lane_serial_drain$VARIANT$armv81
9 libdispatch.dylib 0x1ce989ae4 _dispatch_lane_invoke$VARIANT$armv81
10 libdispatch.dylib 0x1ce991f04 _dispatch_workloop_worker_thread
11 libsystem_pthread.dylib 0x1ceb910dc _pthread_wqthread
12 libsystem_pthread.dylib 0x1ceb93cec start_wqthread

#0. com.apple.main-thread
0 libobjc.A.dylib 0x1ce15a2c4 std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long, objc_references_support::ObjectAssociationMap*>, void*>> std::__1::__hash_table<std::__1::__hash_value_type<unsigned long, objc_references_support::ObjectAssociationMap>, std::__1::__unordered_map_hasher<unsigned long, std::__1::__hash_value_type<unsigned long, objc_references_support::ObjectAssociationMap*>, objc_references_support::DisguisedPointerHash, true>, std::__1::__unordered_map_equal<unsigned long, std::__1::__hash_value_type<unsigned long, objc_references_support::ObjectAssociationMap*>, objc_references_support::DisguisedPointerEqual, true>, objc_references_support::ObjcAllocator<std::__1::__hash_value_type<unsigned long, objc_references_support::ObjectAssociationMap*> > >::find(unsigned long const&) + 132
1 libobjc.A.dylib 0x1ce15a028 _object_remove_assocations + 176
2 libobjc.A.dylib 0x1ce154738 objc_destructInstance + 96
3 libdispatch.dylib 0x1ce97c410 _dispatch_dispose$VARIANT$armv81 + 132
4 libxpc.dylib 0x1cebd4378 _xpc_serializer_dispose + 348
5 libxpc.dylib 0x1cebc1584 _xpc_dispose + 156
6 libxpc.dylib 0x1cebc8b5c _xpc_connection_call_reply_async + 120
7 libxpc.dylib 0x1cebc6678 do_mach_notify_send_once + 184
8 libxpc.dylib 0x1cebbf310 _Xmach_notify_send_once + 44
9 libxpc.dylib 0x1cebbf3f8 notify_server + 92
10 libxpc.dylib 0x1cebc8940 _xpc_connection_pass2mig + 164
11 libdispatch.dylib 0x1ce9ae504 _dispatch_client_callout3 + 16
12 libdispatch.dylib 0x1ce981b3c _dispatch_mach_msg_async_reply_invoke$VARIANT$armv81 + 312
13 libdispatch.dylib 0x1ce98da28 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 744
14 CoreFoundation 0x1cef04df4 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12
15 CoreFoundation 0x1ceeffcbc __CFRunLoopRun + 1964
16 CoreFoundation 0x1ceeff1f0 CFRunLoopRunSpecific + 436
17 GraphicsServices 0x1d1178584 GSEventRunModal + 100
18 UIKitCore 0x1fc114e24 UIApplicationMain + 212
19 Voxer.io 0x100b13b14 main (AppDelegate.swift:18)
20 libdyld.dylib 0x1ce9bebb4 start + 4

#1. Thread
0 libsystem_kernel.dylib 0x1ceb0bb9c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1ceb91100 _pthread_wqthread + 348
2 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

#2. com.apple.uikit.eventfetch-thread
0 libsystem_kernel.dylib 0x1ceaffea4 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1ceaff37c mach_msg + 72
2 CoreFoundation 0x1cef04be8 __CFRunLoopServiceMachPort + 236
3 CoreFoundation 0x1ceeffa84 __CFRunLoopRun + 1396
4 CoreFoundation 0x1ceeff1f0 CFRunLoopRunSpecific + 436
5 Foundation 0x1cf8f5494 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 300
6 Foundation 0x1cf8f5340 -[NSRunLoop(NSRunLoop) runUntilDate:] + 148
7 UIKitCore 0x1fc2052d8 -[UIEventFetcher threadMain] + 136
8 Foundation 0x1cfa2823c NSThread__start + 1040
9 libsystem_pthread.dylib 0x1ceb9025c _pthread_body + 128
10 libsystem_pthread.dylib 0x1ceb901bc _pthread_start + 48
11 libsystem_pthread.dylib 0x1ceb93cf4 thread_start + 4

#3. com.twitter.crashlytics.ios.MachExceptionServer
0 libsystem_kernel.dylib 0x1ceaffea4 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1ceaff37c mach_msg + 72
2 Voxer.io 0x100e2e6e4 CLSMachExceptionServer
3 libsystem_pthread.dylib 0x1ceb9025c _pthread_body + 128
4 libsystem_pthread.dylib 0x1ceb901bc _pthread_start + 48
5 libsystem_pthread.dylib 0x1ceb93cf4 thread_start + 4

#4. AVAudioSession Notify Thread
0 libsystem_kernel.dylib 0x1ceaffea4 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1ceaff37c mach_msg + 72
2 CoreFoundation 0x1cef04be8 __CFRunLoopServiceMachPort + 236
3 CoreFoundation 0x1ceeffa84 __CFRunLoopRun + 1396
4 CoreFoundation 0x1ceeff1f0 CFRunLoopRunSpecific + 436
5 AVFAudio 0x1d4f1360c GenericRunLoopThread::Entry(void*) + 164
6 AVFAudio 0x1d4f3f768 CAPThread::Entry(CAPThread*) + 88
7 libsystem_pthread.dylib 0x1ceb9025c _pthread_body + 128
8 libsystem_pthread.dylib 0x1ceb901bc _pthread_start + 48
9 libsystem_pthread.dylib 0x1ceb93cf4 thread_start + 4

#5. com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x1ceaffea4 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x1ceaff37c mach_msg + 72
2 CoreFoundation 0x1cef04be8 __CFRunLoopServiceMachPort + 236
3 CoreFoundation 0x1ceeffa84 __CFRunLoopRun + 1396
4 CoreFoundation 0x1ceeff1f0 CFRunLoopRunSpecific + 436
5 CFNetwork 0x1cf52200c -[__CoreSchedulingSetRunnable runForever] + 212
6 Foundation 0x1cfa2823c NSThread__start + 1040
7 libsystem_pthread.dylib 0x1ceb9025c _pthread_body + 128
8 libsystem_pthread.dylib 0x1ceb901bc _pthread_start + 48
9 libsystem_pthread.dylib 0x1ceb93cf4 thread_start + 4

#6. Crashed: com.twitter.crashlytics.ios.exception
0 Voxer.io 0x100e43a04 CLSProcessRecordAllThreads
1 Voxer.io 0x100e43ec4 CLSProcessRecordAllThreads
2 Voxer.io 0x100e33708 CLSHandler
3 Voxer.io 0x100e42008 __CLSExceptionRecord_block_invoke
4 libdispatch.dylib 0x1ce9ae484 _dispatch_client_callout + 16
5 libdispatch.dylib 0x1ce98e744 _dispatch_lane_barrier_sync_invoke_and_complete + 56
6 Voxer.io 0x100e41a78 CLSExceptionRecord
7 Voxer.io 0x100e418a8 CLSExceptionRecordNSException
8 Voxer.io 0x100e414a0 CLSTerminateHandler()
9 libc++abi.dylib 0x1ce1390fc std::__terminate(void (*)()) + 16
10 libc++abi.dylib 0x1ce139188 std::terminate() + 84
11 libobjc.A.dylib 0x1ce145db4 _destroyAltHandlerList + 10
12 libdispatch.dylib 0x1ce9ae498 _dispatch_client_callout + 36
13 libdispatch.dylib 0x1ce988fa0 _dispatch_lane_serial_drain$VARIANT$armv81 + 548
14 libdispatch.dylib 0x1ce989ae4 _dispatch_lane_invoke$VARIANT$armv81 + 412
15 libdispatch.dylib 0x1ce991f04 _dispatch_workloop_worker_thread + 584
16 libsystem_pthread.dylib 0x1ceb910dc _pthread_wqthread + 312
17 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

#7. Thread
0 libsystem_kernel.dylib 0x1ceb0bb9c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1ceb91100 _pthread_wqthread + 348
2 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

#8. Thread
0 libsystem_kernel.dylib 0x1ceb0bb9c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x1ceb911c0 _pthread_wqthread + 540
2 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

#9. io.answers.EventQueue (QOS: BACKGROUND)
0 libsystem_kernel.dylib 0x1ceb0ca84 lstat + 8
1 Foundation 0x1cf9cbd08 _NSFileExistsAtPath + 200
2 Foundation 0x1cf919c8c -[NSFileManager fileExistsAtPath:isDirectory:] + 128
3 Foundation 0x1cf919f94 -[NSURL(NSURL) initFileURLWithPath:] + 276
4 Foundation 0x1cf919e6c +[NSURL(NSURL) fileURLWithPath:] + 48
5 Voxer.io 0x100e56b50 -[ANSUploader startNewUploadRequest:filePath:uniqueName:]
6 Voxer.io 0x100e571d8 __72-[ANSUploader checkSession:forTasksMatchingDescription:completionBlock:]_block_invoke
7 CFNetwork 0x1cf713224 __46-[NSURLSession getTasksWithCompletionHandler:]_block_invoke_2 + 236
8 CFNetwork 0x1cf5522a4 __62-[__NSURLSessionLocal _onqueue_getTasksWithCompletionHandler:]_block_invoke + 28
9 Foundation 0x1cfa048bc NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK + 16
10 Foundation 0x1cf90cab8 -[NSBlockOperation main] + 72
11 Foundation 0x1cf90bf8c -[__NSOperationInternal _start:] + 740
12 Foundation 0x1cfa06790 __NSOQSchedule_f + 272
13 libdispatch.dylib 0x1ce98e318 _dispatch_block_async_invoke2 + 104
14 libdispatch.dylib 0x1ce9ae484 _dispatch_client_callout + 16
15 libdispatch.dylib 0x1ce984e04 _dispatch_continuation_pop$VARIANT$armv81 + 404
16 libdispatch.dylib 0x1ce9844e8 _dispatch_async_redirect_invoke + 592
17 libdispatch.dylib 0x1ce990aec _dispatch_root_queue_drain + 344
18 libdispatch.dylib 0x1ce99134c _dispatch_worker_thread2 + 116
19 libsystem_pthread.dylib 0x1ceb9117c _pthread_wqthread + 472
20 libsystem_pthread.dylib 0x1ceb93cec start_wqthread + 4

hi @elanarul , thanks for bring this up. Have you ever used any other SDK version before? If so, has the same crash happened before?

We have two apps (one in app store and another is in development) uses same token but different bundle identifiers. New app is fully built in swift, we see this crash only in testflight builds. This is the first time we added mix-panel in new app

hi @elanarul, sorry for the late response. Since your new app is fully built in swift, we also have a swift library which has reached full parity which we recommend for swift projects. https://github.com/mixpanel/mixpanel-swift.

As for the crash, we recently made a change to objc sdk to make sure that any peopleQueue being unarchived from disk or being initialized the first time should be MutableArray, so the exception [__NSArrayI addObject:]: unrecognized selector sent to instance 0x10393f4b0 is unlikely to happen. Could it be by any chance some of the test flight users are switching back and forth to the old version(before version 3.3.6) of sdk on the same device?

hi @elanarul , we have released v3.3.9. Hopefully this will fix the issue. Please let me know if still any issue and I will reopen it.
https://github.com/mixpanel/mixpanel-iphone/releases/tag/v3.3.9

You are very welcome @elanarul ! Thanks for using Mixpanel!