Случайные сбои в iOS — Xamarin Forms — EXC_BAD_ACCESS (SIGSEGV) — KERN_INVALID_ADDRESS по адресу 0x0000000000000000

Мы разработали мобильное приложение Xamarin Forms 4.6. Приложение отлично работает на Android, но случайно вылетает на iOS. Журнал сбоев вылетает случайным образом при одной и той же функции:

{«app_name»:»project.iOS»,»timestamp»:»2020-11-26 23:04:03.00 +0530″,»app_version»:»1.11″,»slice_uuid»:»de6bf2d0-d21c-352c-917f-3f5224b43fc3″,»adam_id»:0,»build_version»:»1.33″,»platform»:2,»bundleID»:»com.organization. project ———— «,»share_with_app_devs»:0,»is_first_party»:0,»bug_type»:»109″,»os_version»:»iPhone OS 14.2 (18B92)»,»incident_id»:»AF32A3B5-51E9-4FA7-98A4-1B7D453C5A06″,»name»:»project.iOS»} Incident Identifier: AF32A3B5-51E9-4FA7-98A4-1B7D453C5A06 CrashReporter Key: 2ca42bd7d42c78e1da5f9c732e6d004a93326ce9 Hardware Model: iPhone12,1 Process: project.iOS [3506] Path: /private/var/containers/Bundle/Application/7520D1BF-048A-4D14-A16A-F6420D464EA2/project.iOS.app/project.iOS Identifier: com.organization.project Version: 1.33 (1.11) Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: com.organization.project [516] Date/Time: 2020-11-26 23:04:02.4013 +0530 Launch Time: 2020-11-26 23:03:45.6520 +0530 OS Version: iPhone OS 14.2 (18B92) Release Type: User Baseband Version: 2.02.04 Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000 VM Region Info: 0 is not in any region. Bytes before following region: 4298080256 REGION TYPE START — END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START —> __TEXT 1002f8000-103128000 [ 46.2M] r-x/r-x SM=COW …chenomics.iOS Triggered by Thread: 22 Thread 0 name: tid_407 Dispatch queue: com.apple.main-thread Thread 0: 0 libsystem_kernel.dylib 0x00000001dc6e72d0 0x1dc6e3000 + 17104 1 libsystem_kernel.dylib 0x00000001dc6e6660 0x1dc6e3000 + 13920 2 CoreFoundation 0x00000001af787c30 0x1af6e7000 + 658480 3 CoreFoundation 0x00000001af781c14 0x1af6e7000 + 633876 4 CoreFoundation 0x00000001af78121c 0x1af6e7000 + 631324 5 GraphicsServices 0x00000001c6800784 0x1c67fd000 + 14212 6 UIKitCore 0x00000001b21ba200 0x1b15f3000 + 12349952 7 UIKitCore 0x00000001b21bfa74 0x1b15f3000 + 12372596 8 project.iOS 0x000000010178e0f8 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 344 9 project.iOS 0x00000001016be750 UIKit_UIApplication_Main_string___intptr_intptr + 20735824 (UIApplication.cs:86) 10 project.iOS 0x00000001016be6d4 UIKit_UIApplication_Main_string___string_string + 20735700 (UIApplication.cs:66) 11 project.iOS 0x0000000100584604 project_iOS_Application_Main_string__ + 2672132 (/<unknown>:1) 12 project.iOS 0x00000001009552f0 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 272 13 project.iOS 0x0000000102e06fa8 mono_jit_runtime_invoke + 45150120 (mini-runtime.c:3165) 14 project.iOS 0x0000000102ec265c mono_runtime_invoke_checked + 45917788 (object.c:3220) 15 project.iOS 0x0000000102ec88b4 mono_runtime_exec_main_checked + 45942964 (object.c:5284) 16 project.iOS 0x0000000102de5560 mono_jit_exec + 45012320 (driver.c:1328) 17 project.iOS 0x0000000102fa26ec xamarin_main + 46835436 (monotouch-main.m:0) 18 project.iOS 0x0000000100583ac0 main + 2669248 (main.m:246) 19 libdyld.dylib 0x00000001af4416c0 0x1af440000 + 5824 Thread 22 name: Thread Pool Worker Thread 22 Crashed: 0 project.iOS 0x0000000100fbd634 Mono_Net_Security_MobileAuthenticatedStream_ProcessRead_Mono_Net_Security_BufferOffsetSize + 13391412 (MobileAuthenticatedStream.cs:732) 1 project.iOS 0x0000000100fba6d0 Mono_Net_Security_AsyncReadRequest_Run_Mono_Net_Security_AsyncOperationStatus + 13379280 (AsyncProtocolRequest.cs:326) 2 project.iOS 0x0000000100fb9c70 Mono_Net_Security_AsyncProtocolRequest__ProcessOperationd__24_MoveNext + 13376624 (AsyncProtocolRequest.cs:223) 3 project.iOS 0x0000000100713bcc System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_InvokeMoveNext_object + 156 4 project.iOS 0x000000010068f2bc System_Threading_ExecutionContext_RunInternal_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 428 5 project.iOS 0x000000010068f0bc System_Threading_ExecutionContext_Run_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 44 6 project.iOS 0x0000000100713a88 System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_Run + 200 7 project.iOS 0x00000001006b5e70 System_Threading_Tasks_AwaitTaskContinuation_RunOrScheduleAction_System_Action_bool_System_Threading_Tasks_Task_ + 112 8 project.iOS 0x00000001006ae928 System_Threading_Tasks_Task_FinishContinuations + 392 9 project.iOS 0x00000001006acee0 System_Threading_Tasks_Task_FinishStageThree + 160 10 project.iOS 0x00000001011276b8 System_Threading_Tasks_Task_1_System_Nullable_1_int_TrySetResult_System_Nullable_1_int + 14874296 (Future.cs:424) 11 project.iOS 0x0000000101126788 System_Runtime_CompilerServices_AsyncTaskMethodBuilder_1_System_Nullable_1_int_SetResult_System_Nullable_1_int + 14870408 (AsyncMethodBuilder.cs:608) 12 project.iOS 0x0000000100fba410 Mono_Net_Security_AsyncProtocolRequest__InnerReadd__25_MoveNext + 13378576 (AsyncProtocolRequest.cs:267) 13 project.iOS 0x0000000100713bcc System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_InvokeMoveNext_object + 156 14 project.iOS 0x000000010068f2bc System_Threading_ExecutionContext_RunInternal_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 428 15 project.iOS 0x000000010068f0bc System_Threading_ExecutionContext_Run_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 44 16 project.iOS 0x0000000100713a88 System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_Run + 200 17 project.iOS 0x00000001006b5e70 System_Threading_Tasks_AwaitTaskContinuation_RunOrScheduleAction_System_Action_bool_System_Threading_Tasks_Task_ + 112 18 project.iOS 0x00000001006ae928 System_Threading_Tasks_Task_FinishContinuations + 392 19 project.iOS 0x00000001006acee0 System_Threading_Tasks_Task_FinishStageThree + 160 20 project.iOS 0x0000000100920bfc System_Threading_Tasks_Task_1_TResult_INT_TrySetResult_TResult_INT + 252 21 project.iOS 0x000000010092cb18 System_Runtime_CompilerServices_AsyncTaskMethodBuilder_1_TResult_INT_SetResult_TResult_INT + 248 22 project.iOS 0x0000000100fbffa8 Mono_Net_Security_MobileAuthenticatedStream__InnerReadd__66_MoveNext + 13402024 (MobileAuthenticatedStream.cs:633) 23 project.iOS 0x0000000100713bcc System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_InvokeMoveNext_object + 156 24 project.iOS 0x000000010068f2bc System_Threading_ExecutionContext_RunInternal_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 428 25 project.iOS 0x000000010068f0bc System_Threading_ExecutionContext_Run_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 44 26 project.iOS 0x0000000100713a88 System_Runtime_CompilerServices_AsyncMethodBuilderCore_MoveNextRunner_Run + 200 27 project.iOS 0x00000001006b5e70 System_Threading_Tasks_AwaitTaskContinuation_RunOrScheduleAction_System_Action_bool_System_Threading_Tasks_Task_ + 112 28 project.iOS 0x00000001006ae928 System_Threading_Tasks_Task_FinishContinuations + 392 29 project.iOS 0x00000001006acee0 System_Threading_Tasks_Task_FinishStageThree + 160 30 project.iOS 0x0000000100920bfc System_Threading_Tasks_Task_1_TResult_INT_TrySetResult_TResult_INT + 252 31 project.iOS 0x000000010099846c gsharedvt_out_trampoline + 220 32 project.iOS 0x000000010087f074 System_Threading_Tasks_ValueTask_1_ValueTaskSourceAsTask__c_TResult_GSHAREDVT___cctorb__4_0_object + 404 33 project.iOS 0x00000001010b2ba0 System_Net_Sockets_Socket_AwaitableSocketAsyncEventArgs_InvokeContinuation_System_Action_1_object_object_bool + 14396320 (Socket.Tasks.cs:1040) 34 project.iOS 0x00000001010b2180 System_Net_Sockets_Socket_AwaitableSocketAsyncEventArgs_OnCompleted_System_Net_Sockets_SocketAsyncEventArgs + 14393728 (Socket.Tasks.cs:870) 35 project.iOS 0x00000001010b8e3c System_Net_Sockets_SocketAsyncEventArgs_Complete_internal + 14421564 (SocketAsyncEventArgs.cs:189) 36 project.iOS 0x00000001010b51f8 System_Net_Sockets_Socket__c___cctorb__366_10_System_IAsyncResult + 14406136 (Socket.cs:1542) 37 project.iOS 0x00000001010b9d54 System_Net_Sockets_SocketAsyncResult__c__Completeb__27_0_object + 14425428 (SocketAsyncResult.cs:157) 38 project.iOS 0x00000001006966f4 System_Threading_QueueUserWorkItemCallback_System_Threading_IThreadPoolWorkItem_ExecuteWorkItem + 52 39 project.iOS 0x00000001006944d8 System_Threading_ThreadPoolWorkQueue_Dispatch + 488 40 project.iOS 0x000000010167e8d0 ObjCRuntime_Runtime_ThreadPoolDispatcher_System_Func_1_bool + 20474064 (Runtime.cs:289) 41 project.iOS 0x0000000100696598 System_Threading__ThreadPoolWaitCallback_PerformWaitCallback + 136 42 project.iOS 0x00000001009552f0 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 272 43 project.iOS 0x0000000102e06fa8 mono_jit_runtime_invoke + 45150120 (mini-runtime.c:3165) 44 project.iOS 0x0000000102ec3f78 mono_runtime_try_invoke + 45924216 (object.c:3161) 45 project.iOS 0x0000000102f075c4 worker_callback + 46200260 (threadpool.c:386) 46 project.iOS 0x0000000102f04ea0 worker_thread + 46190240 (threadpool-worker-default.c:476) 47 project.iOS 0x0000000102f10638 start_wrapper_internal + 46237240 (threads.c:1288) 48 project.iOS 0x0000000102f104bc start_wrapper + 46236860 (threads.c:1309) 49 libsystem_pthread.dylib 0x00000001f8c22b40 0x1f8c21000 + 6976 50 libsystem_pthread.dylib 0x00000001f8c2b768 0x1f8c21000 + 42856 EOF

Полный список сбоев здесь — https://gist.github.com/manishkung15wani/837a0f6c6326b3

Исключение всегда: Тип исключения: EXC_BAD_ACCESS (SIGSEGV) Подтип исключения: KERN_INVALID_ADDRESS в 0x0000000000000000

При сбое потока в Mono_Net_Security_MobileAuthenticatedStream_ProcessRead_Mono_Net_Security_BufferOffsetSize

Зависимости нашего проекта Xamarin следующие:

Мы нашли эту ветку в репозиториях Xamarin Github — https://github.com/mono/mono/issues/19858

И мы гарантируем, что используем NSUrlSessionHandler.

Пожалуйста помоги. Огромное спасибо

Вы можете сначала обновить версию XF до последней (4.8.x), чтобы проверить, существует ли проблема.   —  person manishKungwani    schedule 27.11.2020

@ LucasZhang-MSFT с v4.8 у нас возникла проблема с UIWebView, из-за которой Apple AppStore отклонил приложение.   —  person manishKungwani    schedule 27.11.2020

Проверьте stackoverflow.com/questions/64369632/   —  person manishKungwani    schedule 27.11.2020

@ LucasZhang-MSFT Это было сделано. Таким образом, проблема была связана с кодом пользовательского интерфейса, работающим в фоновом потоке. Он работает на всех версиях iOS, кроме 14.2, где происходит случайный сбой. Любое мнение по этому поводу — developer.apple.com/forums/thread/666399   —  person manishKungwani    schedule 27.11.2020

@manishKungwani Вы символизировали крушение?   —  person manishKungwani    schedule 27.11.2020

@ LucasZhang-MSFT в фоновом потоке был код пользовательского интерфейса, мы исправили эту проблему, и теперь эти сбои происходят только в iOS 14.2 — developer.apple.com/forums/thread/666399. Какая-нибудь помощь возможна с этим?   —  person manishKungwani    schedule 28.11.2020

@SushiHangover Это упрощенные журналы сбоев.   —  person manishKungwani    schedule 28.11.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!