Что это означает, что DiskCookies Crash в приложении для iOS? - PullRequest
0 голосов
/ 19 апреля 2019

Я использую Fabric для регистрации сбоев в моем приложении для iOS.Сегодня я столкнулся с каким-то сбоем, связанным с DiskCookies.Я действительно не знаю, что это значит.

Crashed: diskcookies
0  CoreFoundation                 0x1bd00136 CFNotificationCenterPostNotification + 53
1  libsystem_malloc.dylib         0x1b5d9cf3 szone_malloc_should_clear + 3240
2  CFNetwork                      0x1c44a359 DiskCookieStorage::writeFileCompletely0(DiskCookieStorage*, FilePathStat*, MemoryCookies const*, __CFData const*, TracerData*, int) + 634
3  CFNetwork                      0x1c44a49d DiskCookieStorage::_asyncWriteFileCompletely(void*) + 174
4  libdispatch.dylib              0x1b4a1783 _dispatch_client_callout + 22
5  libdispatch.dylib              0x1b4ada35 _dispatch_barrier_sync_f_invoke + 50
6  CFNetwork                      0x1c44b09d DiskCookieStorage::syncStorageWithCompletionLocked(unsigned char, void () block_pointer) + 2220
7  CFNetwork                      0x1c44277b ___CFHTTPCookieStorageFlushCookieStores_block_invoke + 86
8  CoreFoundation                 0x1bcf5447 __CFDictionaryApplyFunction_block_invoke + 20
9  CoreFoundation                 0x1bce0634 CFBasicHashApply + 120
10 CoreFoundation                 0x1bce94c1 CFDictionaryApplyFunction + 152
11 CFNetwork                      0x1c44270f _CFHTTPCookieStorageFlushCookieStores + 140
12 libsystem_c.dylib              0x1b53720d __cxa_finalize_ranges + 290
13 libsystem_c.dylib              0x1b4f61b3 exit + 12
14 Comico                         0x97a74f UnityGetGLViewController + 4756906
15 Comico                         0x97a265 UnityGetGLViewController + 4755648
16 Comico                         0x980a6b UnityGetGLViewController + 4782278
17 Comico                         0x96dfb5 UnityGetGLViewController + 4705808
18 Comico                         0x96da59 UnityGetGLViewController + 4704436
19 Comico                         0x200fe3 -[AppDelegate setUpAppGuardWithUserID:] (AppDelegate.m:1303)
20 Comico                         0x1ff967 __36-[AppDelegate dologinInCallLoginAPI]_block_invoke (AppDelegate.m:1026)
21 Comico                         0x13f69b __42-[NCLoginRAPIManager loginWithCompletion:]_block_invoke (NCLoginRAPIManager.m:97)
22 Comico                         0xde19f -[NCRAPICompletion performBlockWithOperation:] (NCRAPICompletion.m:94)
23 CoreFoundation                 0x1bd06323 -[NSArray makeObjectsPerformSelector:withObject:] + 218
24 Comico                         0x3adf0d -[NCRAPIOperationRegister performCompletionBlockOfOperation:] (NCRAPIOperationRegister.m:67)
25 Comico                         0x251ce1 __51-[NCRAPIManager callRAPIWithAPIRequest:completion:]_block_invoke_2 (NCRAPIManager.m:65)
26 libdispatch.dylib              0x1b4a1797 _dispatch_call_block_and_release + 10
27 libdispatch.dylib              0x1b4a1783 _dispatch_client_callout + 22
28 libdispatch.dylib              0x1b4a5d05 _dispatch_main_queue_callback_4CF + 902
29 CoreFoundation                 0x1bd8fd69 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
30 CoreFoundation                 0x1bd8de19 __CFRunLoopRun + 848
31 CoreFoundation                 0x1bce11af CFRunLoopRunSpecific + 470
32 CoreFoundation                 0x1bce0fd1 CFRunLoopRunInMode + 104
33 GraphicsServices               0x1d48bb41 GSEventRunModal + 80
34 UIKit                          0x21069a53 UIApplicationMain + 150
35 Comico                         0x20dc39 main (main.m:19)
36 libdyld.dylib                  0x1b4ce4eb start + 2

Я полагаю, что кто-то пытается изменить путь, куда сетевая библиотека помещает данные.У кого-нибудь есть какая-то другая теория или какой-то опыт в этом сбое?

1 Ответ

1 голос
/ 16 мая 2019

Из трассировки стека, которую вы разместили здесь, моя теория.

  • Кадр 14 указывает, что у вас есть приложение Unity, и оно выполняет свою работу под управлением OpenGL.
  • Кадр13 действительно интересно.Кажется, что Unity UnityGetGLViewController (который, я полагаю, не написан вами) вызвал exit.Это удивительное поведение, но оно дает много подсказок для остальной части стека.
  • Кадры 12-2 выглядят так, как будто сетевой стек просто выполняет некоторую работу при выходе из приложения (вызвано UnityGetGLViewController).Похоже, что это просто запись некоторых файлов, связанных с cookie, на диск.Я бы не волновался об этом.
  • Кадры 0 и 1 действительно подозрительны.Мне очень трудно поверить, что malloc вызывает CoreFoundation.Если бы мне пришлось угадывать, я бы сказал, что фрейм 0 правильный, а фрейм 1 неправильно обозначен или неправильно размотан.

Очень необычно вызывать exit в приложениях iOS.Хотя это технически API, я сомневаюсь, что это сильно проверено.Держу пари, что есть некоторые проблемы с висящим указателем и / или жизненным циклом объекта, связанные с использованием exit, и вы видите это здесь.

Что бы я сделал, это посмотрел бы, есть ли в Unity документация около UnityGetGLViewController звонит exit.Я также проверил бы с людьми из Fabric о кадрах 1 и 0. Я не понимаю, как оба могут быть правильными.И, наконец, я могу рассмотреть вопрос об ошибке в Apple.Тем не менее, Apple обычно не любит просматривать отчеты о сбоях не Apple.Так что последний, вероятно, длинный выстрел.

...