Pushwoosh / pushwoosh-react-native-plugin

Other
57 stars 43 forks source link

dynamicDidReceiveRemoteNotificationWithFetch Crash #149

Closed cdgmx closed 1 year ago

cdgmx commented 1 year ago

Hardware Model: iPhone10,3 Process: [Redacted] Path: [Redacted] Identifier: [Redacted] Version: [Redacted] AppStoreTools: [Redacted] Code Type: ARM-64 (Native) Role: Non UI Parent Process: launchd [1] Coalition: [Redacted]

Date/Time: 2023-03-16 08:05:33.5845 +0800 Launch Time: 2023-03-16 08:05:33.1836 +0800 OS Version: iPhone OS 16.3 (20D47) Release Type: User Baseband Version: 8.04.01 Report Version: 104

Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x00000001bca7cd0c Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Terminating Process: exc handler [13098]

Triggered by Thread: 0

Application Specific Information: BUG IN CLIENT OF LIBDISPATCH: Unbalanced call to dispatch_group_leave()

Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libdispatch.dylib 0x1bca7cd0c dispatch_group_leave$VARIANT$armv81.cold.1 + 36 1 libdispatch.dylib 0x1bca44650 dispatch_group_leave$VARIANT$armv81 + 112 2 Pushwoosh 0x103a60a14 dynamicDidReceiveRemoteNotificationWithFetch + 264 3 UIKitCore 0x1b8010de0 -[UIApplication pushRegistry:didReceiveIncomingPushWithPayload:forType:withCompletionHandler:] + 264 4 PushKit 0x2004f4e64 __74-[PKPushRegistry remoteUserNotificationPayloadReceived:completionHandler:]_block_invoke + 124 5 libdispatch.dylib 0x1bca73850 _dispatch_call_block_and_release + 24 6 libdispatch.dylib 0x1bca747c8 _dispatch_client_callout + 16 7 libdispatch.dylib 0x1bca55f18 _dispatch_main_queue_drain + 888 8 libdispatch.dylib 0x1bca55b90 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 36 9 CoreFoundation 0x1b5be7818 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12 10 CoreFoundation 0x1b5bcb498 __CFRunLoopRun + 2096 11 CoreFoundation 0x1b5bcfb48 CFRunLoopRunSpecific + 584 12 GraphicsServices 0x1ebf4b984 GSEventRunModal + 160 13 UIKitCore 0x1b7f7a638 -[UIApplication _run] + 868 14 UIKitCore 0x1b7f7a2b0 UIApplicationMain + 312 15 [Redacted AppName] 0x102c9bd9c 0x102c94000 + 32156 16 dyld 0x1d2959df0 start + 2096

Thread 1 name: Dispatch queue: com.apple.NSURLSession-work Thread 1: 0 libsystem_malloc.dylib 0x1c3431334 _nanov2_free + 216 1 CoreFoundation 0x1b5b74960 CFBasicHashRehash + 2496 2 CoreFoundation 0x1b5b74960 CFBasicHashRehash + 2496 3 CoreFoundation 0x1b5b74d84 __CFBasicHashAddValue + 104 4 CoreFoundation 0x1b5beea4c CFDictionarySetValue + 228 5 CFNetwork 0x1b6c91880 0x1b6c4c000 + 284800 6 CFNetwork 0x1b6c8698c 0x1b6c4c000 + 240012 7 CFNetwork 0x1b6d47338 0x1b6c4c000 + 1028920 8 CFNetwork 0x1b6d050dc 0x1b6c4c000 + 757980 9 CFNetwork 0x1b6d1364c 0x1b6c4c000 + 816716 10 CFNetwork 0x1b6c6b78c 0x1b6c4c000 + 128908 11 CFNetwork 0x1b6c757f0 0x1b6c4c000 + 169968 12 CFNetwork 0x1b6ca8ab0 0x1b6c4c000 + 379568 13 CFNetwork 0x1b6c7b5ac 0x1b6c4c000 + 193964 14 CFNetwork 0x1b6ca6898 0x1b6c4c000 + 370840 15 CFNetwork 0x1b6c721c0 0x1b6c4c000 + 156096 16 CFNetwork 0x1b6c53a20 0x1b6c4c000 + 31264 17 CFNetwork 0x1b6c67104 0x1b6c4c000 + 110852 18 libdispatch.dylib 0x1bca56738 _dispatch_block_async_invoke2 + 104 19 libdispatch.dylib 0x1bca747c8 _dispatch_client_callout + 16 20 libdispatch.dylib 0x1bca4f800 _dispatch_lane_serial_drain$VARIANT$armv81 + 604 21 libdispatch.dylib 0x1bca502c4 _dispatch_lane_invoke$VARIANT$armv81 + 432 22 libdispatch.dylib 0x1bca5a000 _dispatch_workloop_worker_thread + 612 23 libsystem_pthread.dylib 0x1fe5c8b50 _pthread_wqthread + 284 24 libsystem_pthread.dylib 0x1fe5c867c start_wqthread + 8

Thread 2: 0 libsystem_pthread.dylib 0x1fe5c8674 start_wqthread + 0

Thread 3 name: Dispatch queue: com.facebook.react.ShadowQueue Thread 3: 0 libsystem_kernel.dylib 0x1ef4b8bb4 ulock_wait + 8 1 libdispatch.dylib 0x1bca44238 _dlock_wait + 52 2 libdispatch.dylib 0x1bca44020 _dispatch_thread_event_wait_slow$VARIANT$armv81 + 52 3 libdispatch.dylib 0x1bca56e00 DISPATCH_WAIT_FOR_QUEUE__ + 340 4 libdispatch.dylib 0x1bca56a00 _dispatch_sync_f_slow + 136 5 [Redacted AppName] 0x10309d338 0x102c94000 + 4231992 6 [Redacted AppName] 0x103085bf8 0x102c94000 + 4135928 7 libdispatch.dylib 0x1bca747c8 _dispatch_client_callout + 16 8 libdispatch.dylib 0x1bca44eec _dispatch_once_callout + 28 9 [Redacted AppName] 0x103085bd4 0x102c94000 + 4135892 10 [Redacted AppName] 0x103085e80 0x102c94000 + 4136576 11 [Redacted AppName] 0x10307c4b0 0x102c94000 + 4097200 12 [Redacted AppName] 0x103094404 0x102c94000 + 4195332 13 libdispatch.dylib 0x1bca73850 _dispatch_call_block_and_release + 24 14 libdispatch.dylib 0x1bca747c8 _dispatch_client_callout + 16 15 libdispatch.dylib 0x1bca4f800 _dispatch_lane_serial_drain$VARIANT$armv81 + 604 16 libdispatch.dylib 0x1bca50290 _dispatch_lane_invoke$VARIANT$armv81 + 380 17 libdispatch.dylib 0x1bca5a000 _dispatch_workloop_worker_thread + 612 18 libsystem_pthread.dylib 0x1fe5c8b50 _pthread_wqthread + 284 19 libsystem_pthread.dylib 0x1fe5c867c start_wqthread + 8

Thread 4 name: com.apple.uikit.eventfetch-thread Thread 4: 0 libsystem_kernel.dylib 0x1ef4b8114 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x1ef4c99e0 mach_msg2_internal + 76 2 libsystem_kernel.dylib 0x1ef4c9c1c mach_msg_overwrite + 384 3 libsystem_kernel.dylib 0x1ef4b8608 mach_msg + 20 4 CoreFoundation 0x1b5bc9f88 CFRunLoopServiceMachPort + 156 5 CoreFoundation 0x1b5bcb138 CFRunLoopRun + 1232 6 CoreFoundation 0x1b5bcfb48 CFRunLoopRunSpecific + 584 7 Foundation 0x1affd9168 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 208 8 Foundation 0x1affd9064 -[NSRunLoop(NSRunLoop) runUntilDate:] + 60 9 UIKitCore 0x1b809f4b8 -[UIEventFetcher threadMain] + 424 10 Foundation 0x1afff0ca4 NSThreadstart__ + 704 11 libsystem_pthread.dylib 0x1fe5ca060 _pthread_start + 116 12 libsystem_pthread.dylib 0x1fe5c8688 thread_start + 8

Thread 5: 0 libsystem_pthread.dylib 0x1fe5c8674 start_wqthread + 0

Thread 6: 0 libsystem_pthread.dylib 0x1fe5c8674 start_wqthread + 0

Thread 7 name: Dispatch queue: com.google.fira.worker Thread 7: 0 CoreFoundation 0x1b5bd1ea4 -[__NSCFString release] + 0 1 [Redacted AppName] 0x102ee3584 0x102c94000 + 2422148 2 [Redacted AppName] 0x102ee3fd0 0x102c94000 + 2424784 3 [Redacted AppName] 0x102e61954 0x102c94000 + 1890644 4 [Redacted AppName] 0x102e60308 0x102c94000 + 1884936 5 [Redacted AppName] 0x102e56254 0x102c94000 + 1843796 6 [Redacted AppName] 0x102e85010 0x102c94000 + 2035728 7 [Redacted AppName] 0x102e84b9c 0x102c94000 + 2034588 8 [Redacted AppName] 0x102e841a8 0x102c94000 + 2032040 9 [Redacted AppName] 0x102e84088 0x102c94000 + 2031752 10 [Redacted AppName] 0x102edbfb8 0x102c94000 + 2391992 11 libdispatch.dylib 0x1bca73850 _dispatch_call_block_and_release + 24 12 libdispatch.dylib 0x1bca747c8 _dispatch_client_callout + 16 13 libdispatch.dylib 0x1bca4f800 _dispatch_lane_serial_drain$VARIANT$armv81 + 604 14 libdispatch.dylib 0x1bca50290 _dispatch_lane_invoke$VARIANT$armv81 + 380 15 libdispatch.dylib 0x1bca5a000 _dispatch_workloop_worker_thread + 612 16 libsystem_pthread.dylib 0x1fe5c8b50 _pthread_wqthread + 284 17 libsystem_pthread.dylib 0x1fe5c867c start_wqthread + 8

Thread 8 name: com.facebook.react.JavaScript Thread 8: 0 libsystem_kernel.dylib 0x1ef4b8114 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x1ef4c99e0 mach_msg2_internal + 76 2 libsystem_kernel.dylib 0x1ef4c9c1c mach_msg_overwrite + 384 3 libsystem_kernel.dylib 0x1ef4b8608 mach_msg + 20 4 CoreFoundation 0x1b5bc9f88 CFRunLoopServiceMachPort + 156 5 CoreFoundation 0x1b5bcb138 CFRunLoopRun + 1232 6 CoreFoundation 0x1b5bcfb48 CFRunLoopRunSpecific + 584 7 [Redacted AppName] 0x103058b88 0x102c94000 + 3951496 8 Foundation 0x1afff0ca4 NSThreadstart__ + 704 9 libsystem_pthread.dylib 0x1fe5ca060 _pthread_start + 116 10 libsystem_pthread.dylib 0x1fe5c8688 thread_start + 8

Thread 9 name: JavaScriptCore libpas scavenger Thread 9: 0 libsystem_kernel.dylib 0x1ef4b8960 __psynch_cvwait + 8 1 libsystem_pthread.dylib 0x1fe5c9584 _pthread_cond_wait$VARIANT$armv81 + 1220 2 JavaScriptCore 0x1c806caa4 scavenger_thread_main + 1012 3 libsystem_pthread.dylib 0x1fe5ca060 _pthread_start + 116 4 libsystem_pthread.dylib 0x1fe5c8688 thread_start + 8

Thread 0 crashed with ARM Thread State (64-bit): x0: 0x000000028121c690 x1: 0x00000002004f68b8 x2: 0x00000001b888453c x3: 0x00000000000010ff x4: 0x0000000000000004 x5: 0x000000000b600000 x6: 0x0000000000000001 x7: 0x00000001b188adf1 x8: 0x0000000000000000 x9: 0x0000000000000004 x10: 0x0000000214918d48 x11: 0x00e9000214918d49 x12: 0x0000000000820cb0 x13: 0x0000000108011fb0 x14: 0x000021a20c5d9b9d x15: 0x000000020c5d9b98 x16: 0x00000001bca445e0 x17: 0x00000001b8ab8434 x18: 0x0000000000000000 x19: 0x0000000283f2a340 x20: 0x0000000103d07d50 x21: 0x0000000281f31280 x22: 0x0000000283f12550 x23: 0x0000000283f3ac40 x24: 0x0000000000000001 x25: 0x0000000000000002 x26: 0x000000000000000f x27: 0x0000000000000000 x28: 0x0000000000000114 fp: 0x000000016d16a5e0 lr: 0x00000001bca44650 sp: 0x000000016d16a5e0 pc: 0x00000001bca7cd0c cpsr: 0x80000000 far: 0x000000020c7ab788 esr: 0xf2000001 (Breakpoint) brk 1

Binary Images: 0x1bca10000 - 0x1bca93fff libdispatch.dylib arm64 <9fa81dce81cf3e8ba1bbfb64744769b2> /usr/lib/system/libdispatch.dylib 0x103a54000 - 0x103abffff Pushwoosh arm64 /private/var/containers/Bundle/Application/31B1D25A-58B7-4EAD-8B6E-41473E21FEE4/ [Redacted AppName].app/Frameworks/Pushwoosh.framework/Pushwoosh 0x1b7c05000 - 0x1b92eafff UIKitCore arm64 <15e101fa5ff239a489833819cba1f11d> /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore 0x2004f4000 - 0x2004fbfff PushKit arm64 <57cec614bdf4342b9967874810e9f864> /System/Library/Frameworks/PushKit.framework/PushKit 0x1b5b54000 - 0x1b5f20fff CoreFoundation arm64 /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x1ebf4a000 - 0x1ebf52fff GraphicsServices arm64 /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x102c94000 - 0x103343fff [Redacted AppName] arm64 /private/var/containers/Bundle/Application/31B1D25A-58B7-4EAD-8B6E-41473E21FEE4/ [Redacted AppName].app/ [Redacted AppName] 0x1d2946000 - 0x1d29c000b dyld arm64 /usr/lib/dyld 0x1c3420000 - 0x1c3443ff3 libsystem_malloc.dylib arm64 <438da2f6eebd3c70bb27f87d4be47c16> /usr/lib/system/libsystem_malloc.dylib 0x1b6c4c000 - 0x1b6fe9fff CFNetwork arm64 /System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x1fe5c7000 - 0x1fe5d7fff libsystem_pthread.dylib arm64 /usr/lib/system/libsystem_pthread.dylib 0x1ef4b7000 - 0x1ef4ecff7 libsystem_kernel.dylib arm64 <05f9a5076ae5382fafc54d2e83818c99> /usr/lib/system/libsystem_kernel.dylib 0x1aff9b000 - 0x1b0846fff Foundation arm64 <57ff5555479e3634931a26d334c85350> /System/Library/Frameworks/Foundation.framework/Foundation 0x1c7f7c000 - 0x1c9327fff JavaScriptCore arm64 <01958764a4e639609564997b5796bd29> /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore EOF

The crash occurs at the following line:

2 Pushwoosh 0x103a60a14 dynamicDidReceiveRemoteNotificationWithFetch + 264

The crash reason is an unbalanced call to dispatch_group_leave():

Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Application Specific Information: BUG IN CLIENT OF LIBDISPATCH: Unbalanced call to dispatch_group_leave()

We cannot reproduce this but it affects thousands of our users. What we can only do is to check crash log from app store and our own device

Reproducible Repository https://github.com/cdgmx/react-native-labs/tree/bareworkflow-expo-react-native-pushwoosh

steps:

  1. Add id
  2. send silent push
  3. should crash
akidisdev commented 1 year ago

@cdgmx Hello!Thanks for the report we're checking it

cdgmx commented 1 year ago

Just to add, this is happening due to silent push notification

cdgmx commented 1 year ago

Added reproducible repository @akiselev-pushwoosh

akidisdev commented 1 year ago

@cdgmx Hi! In the last release (version 6.1.20), we identified and fixed a crash issue.

olbesp commented 1 year ago

The issue still exists on 6.1.20 on iOS Podfile.lock:

Screenshot 2023-05-05 at 17 12 06
akidisdev commented 1 year ago

@olbesp Hi! I can see that you are currently using Pushwoosh iOS SDK version 6.4.9, but please note that we have already fixed the issue in version 6.4.11 (https://github.com/Pushwoosh/pushwoosh-ios-sdk/releases/tag/6.4.11). We kindly request you to update your Pushwoosh dependencies.