Сбой: WebThread - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

С 8 ноября 2016 года мы увидели внезапное увеличение сбоев в работе WebThread. Мы не знаем, что вызывает крушение.

У нас есть веб-статьи и объявления в приложении. У нас не было выпуска приложений. Не было никаких существенных изменений в сети или рекламе.

Так как сбои происходят на экранах без статей, мы думаем, что это происходит на рекламе.

Кто-нибудь еще видит это? Любые мысли, идеи, что-нибудь?

Трассировка стека:

Crashed: WebThread
0  WebCore                        0x184b7e47c WTF::HashMap<WTF::String, WebCore::ApplicationCacheGroup*, WTF::StringHash, WTF::HashTraits<WTF::String>, WTF::HashTraits<WebCore::ApplicationCacheGroup*> >::remove(WTF::String const&) + 48
1  WebCore                        0x184b7abbc WebCore::ApplicationCacheStorage::cacheGroupDestroyed(WebCore::ApplicationCacheGroup*) + 52
2  WebCore                        0x184b7abbc WebCore::ApplicationCacheStorage::cacheGroupDestroyed(WebCore::ApplicationCacheGroup*) + 52
3  WebCore                        0x184b70628 WebCore::ApplicationCacheGroup::~ApplicationCacheGroup() + 56
4  WebCore                        0x184b70b10 WebCore::ApplicationCacheGroup::~ApplicationCacheGroup() + 12
5  WebCore                        0x184b72334 WebCore::ApplicationCacheGroup::disassociateDocumentLoader(WebCore::DocumentLoader*) + 184
6  WebCore                        0x184a024a0 WebCore::ApplicationCacheHost::~ApplicationCacheHost() + 48
7  WebCore                        0x184a01ad0 WebCore::DocumentLoader::~DocumentLoader() + 168
8  WebKitLegacy                   0x185976ba8 WebDocumentLoaderMac::~WebDocumentLoaderMac() + 84
9  WebCore                        0x184e30a78 WebCore::FrameLoader::detachFromParent() + 324
10 WebKitLegacy                   0x1859e0b08 __29-[WebView(WebPrivate) _close]_block_invoke + 348
11 WebCore                        0x1857842c4 HandleRunSource(void*) + 368
12 CoreFoundation                 0x180ab509c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
13 CoreFoundation                 0x180ab4ab0 __CFRunLoopDoSources0 + 412
14 CoreFoundation                 0x180ab2830 __CFRunLoopRun + 724
15 CoreFoundation                 0x1809dcc50 CFRunLoopRunSpecific + 384
16 WebCore                        0x1849ce108 RunWebThread(void*) + 456
17 libsystem_pthread.dylib        0x180763b28 _pthread_body + 156
18 libsystem_pthread.dylib        0x180763a8c _pthread_body + 154
19 libsystem_pthread.dylib        0x180761028 thread_start + 4

Ответ 1

Отвечая на мой собственный вопрос, чтобы добавить больше деталей, чем область комментариев.
Не помечено как ответ, так как у меня нет решения.

К сожалению, мы не смогли решить проблему. К счастью, сбой снизился через 2-3 дня.

Проведя 3 дня, мы были уверены, что это связано с Google Ads. Однако, почему скорость крушения пошла вверх и вниз, все еще остается загадкой для нас.

Некоторые примечания/заключение:

  • Делаем ли мы что-то глупое при запросе/обработке объявлений?
    • Возможно, но шансы очень тонкие, как это происходит с существующим стабильным выпуском.
  • Это происходит с конкретными объявлениями?
    • снизился уровень сбоев, потому что мы больше не показываем это объявление?
  • Команда GoogleAds пришла на помощь и поступила так, как будто ничего не случилось? потому что...:)
  • Не новая проблема. Crashlytics показывал первое появление этого типа сбоев за несколько месяцев до этого.

Ответ 2

Две ветки идей исследуют:

fooobar.com/questions/559425/...

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

fooobar.com/questions/331276/...

Угадайте, что что-то не так с кешированием ресурса.

Ответ 3

Проще говоря, авария, которую вы испытываете, связана с утечкой памяти.

Переменная или объект пытается получить доступ к ограниченной памяти, что приведет к этому сбою. Мое предположение заключается в том, что одна из используемых вами рекламных фреймворков /API не обрабатывала обновление iOS 10.1.1 (Build 14B100), которое вышло 31 октября 2016 года. Это может быть cuase вашей аварии.

Мне также пришло в голову, что это происходит во время какого-то вызова функции закрытия/выхода. Если да, УБЕДИТЕСЬ, вы освобождаете объекты, переменные и все остальное, которые были назначены памяти, правильно. Если ваш код или программа высвобождает все правильно, то это реклама /API, вызывающая ваши проблемы.

Ура!