web-dev-qa-db-fra.com

S'est écrasé: WebThread - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

Depuis le 8 novembre 2016, nous avons assisté à une augmentation soudaine des accidents de WebThread. Nous ne savons pas ce qui cause le crash.

Nous avons des articles Web et des publicités dans l'application. Nous n'avions aucune version de l'application. Il n'y a eu aucun changement significatif sur le Web ou les annonces.

Comme des accidents se produisent sur des écrans sans articles, nous pensons que cela se produit dans les publicités.

Est-ce que quelqu'un d'autre voit ça? Des pensées, des idées, quelque chose?

Trace de la pile:

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
12
kthorat

Répondre à ma propre question pour ajouter plus de détails que la zone de commentaire.
Ne marque pas comme répondu car je n'ai pas de solution.
 

Malheureusement, nous n'avons pas pu résoudre le problème. Heureusement, le taux d'accidents a diminué après 2-3 jours. 

Après 3 jours passés, nous étions certains que c'était lié à Google Ads. Cependant, pourquoi le taux d'accident a augmenté et est resté un mystère pour nous.

Quelques notes/conclusion:

  • Faisons-nous quelque chose de stupide lorsque nous demandons/gérons des annonces?
    • Possible, mais les chances sont très minces car cela arrivait à la version stable existante.
  • Est-ce que cela arrive à des annonces spécifiques?
    • le taux d'accidents a diminué parce que nous ne diffusons plus cette annonce? 
  • L'équipe GoogleAds est venue au secours et a agi comme si rien ne s'était passé? parce que... :) 
  • Pas un nouveau problème - Crashlytics montrait que la première occurrence de ce type d'accident était survenue plusieurs mois auparavant.
1
kthorat

Deux branches d’idées deux à explorer:

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

l’utilisateur ferme peut-être la vue Web juste avant d’essayer d’envoyer un rappel de délégué, ce qui provoque le blocage, car il n’existe pas.

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

deviner que quelque chose ne va pas avec la mise en cache d'une ressource.

0
PDK

En termes simples, le crash que vous rencontrez est dû à une fuite de mémoire. 

Une variable ou un objet tente d'accéder à de la mémoire restreinte, ce qui provoquera ce blocage. Je suppose que l'un des frameworks publicitaires/API que vous utilisez ne gérait pas la mise à jour iOS 10.1.1 (Build 14B100) du 31 octobre 2016. Cela pourrait être la cause de votre crash.

Je me suis aussi rendu compte que cela semble se produire lors d’une sorte d’appel à une fonction de fermeture/sortie. Si tel est le cas, ASSUREZ-VOUS vous libérez correctement des objets, des variables et tout ce qui a été attribué à de la mémoire. Si votre code ou programme publie tout correctement, c'est le framework/API de publication qui est à l'origine de vos problèmes.

À votre santé!

0
Jake Samz