崩溃:WebThread - EXC_BAD_ACCESS KERN_INVALID_ADDRESS。

12
自2016年11月8日以来,我们发现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

你使用第三方广告框架/SDK吗? - shallowThought
你是否在主线程上创建UIWebView?如果没有,请尝试一下。 - MikeJRamsey56
@shallowThought 是的,我们正在使用DFP和FB广告网络。是的,我们正在研究广告数据。 - k-thorat
@MikeJRamsey56 我们正在主线程上使用 webview。你知道这个错误是否只出现在 uiwebview 上吗?既然我们已经转移到了 wkwebview,那么这就给我们提供了线索,表明这确实是来自于第三方广告 SDK 等。 - k-thorat
我们从2017年8月18日00:00 UTC开始出现了这样的崩溃。你找到任何解决方案了吗?我们认为它与Google Ads SDK有关,但禁用Google广告并没有完全解决问题。 - kolyuchiy
3个回答

2

回答自己的问题以添加更多细节,而不是在评论区标记为已解决,因为我没有解决方案。

很遗憾,我们无法解决这个问题。幸运的是,在2-3天后,崩溃率下降了。

花了3天时间后,我们确定与Google广告有关。然而,为什么崩溃率会上下波动对我们来说仍然是一个谜。

一些注意事项/结论:

  • 我们在请求/处理广告时是否做了一些愚蠢的事情?
    • 可能性很小,因为它发生在现有的稳定版本中。
  • 这是否发生在特定的广告上?
    • 崩溃率下降是因为我们不再提供那些广告了吗?
  • GoogleAds团队前来救援,并像什么都没有发生一样?因为... :)
  • 这不是一个新问题——Crashlytics显示这种类型的崩溃首次出现是几个月前。

0

正如我在问题中所说 - 我们发现了一些没有 Web 视图的崩溃。崩溃不仅限于应用程序内的 WebView。此外,我们正在停止 WebView 加载并删除委托。 - k-thorat

0

简单来说,你遇到的崩溃是由于内存泄漏引起的。

一个变量或对象试图访问受限制的内存,这将导致崩溃。 我猜测,你正在使用的某个广告框架/API没有处理2016年10月31日发布的iOS 10.1.1(Build 14B100)更新。 这可能是你崩溃的原因。

我还想到,在某种关闭/退出函数调用期间似乎发生了这种情况。如果是这样,请确保正确释放分配了内存的对象、变量和其他任何东西。如果你的代码或程序以正确的方式释放了所有内容,那么就是广告框架/API导致了你的问题。

干杯!


我们发现所有iOS版本都出现了崩溃。我们已经检查了内存泄漏和内存图分析,一切看起来都很好。 - k-thorat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接