Сбой: 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 

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

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

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

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

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

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

https://stackoverflow.com/a/32078697/3419541

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

https://stackoverflow.com/a/31673840/3419541

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

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

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

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

Ура!

  • Разрешить непроверенные сертификаты ssl в WKWebView
  • Снимок экрана WKWebView не полностью обеспечивает полную высоту страницы
  • Как удалить кеш WKWebview в iOS8?
  • WKWebView не загружает http-образ в iOS 10 и выше
  • Миграция из UIWebView в WKWebView
  • Предотвращение открытия универсальных ссылок в `WKWebView` /` UIWebView`
  • как я могу выполнить запрос манифеста с WKWebView
  • Как я могу получить файл с помощью WKWebView?
  • Когда я могу использовать SFSafariViewController, WKWebView или UIWebView с универсальными ссылками?
  • Как предотвратить закрытие WKWebView при запуске плагина Cordova
  • Скрытие панели аксессуаров клавиатуры в WKWebView
  • Interesting Posts

    В Info.plist пакета нет ключа CFBundleVersion или его значение не является строкой

    Как предотвратить или обнаружить «Симуляция местоположения» Xcode в вашей заявке на производство?

    Ошибка импорта неизвестного типа в iOS

    Обращайтесь с «UIImagePickerController» и «allowEditing», чтобы получить идеальную площадь

    Программный переход от UIBarButtonItem

    Постоянный сбой в аннотации MKMapViewContainer: viewForAnnotation

    Как я хотел выпустить массив, возвращенный методом класса?

    NSUserDefaults, NSCoder, Custom Class – вопрос для iPhone

    Лучший способ контролировать большое (50000+) количество регионов

    Пытается использовать только часть SKTexture, используя textureWithRect inTexture

    Невозможно воспроизвести звук, записанный с помощью голоса, используя AVCaptureAudioDataOutputSampleDelegate

    Массив из файла в XCode

    KVO не работает с UISwitch

    Как программно изменить размер UICollectionViewCell в Swift?

    Есть ли метод UIViewController, который автоматически вызывается, когда приложение перемещается на задний план?

    Давайте будем гением компьютера.