问题
I'm embedding YouTube videos using the power of the YouTube Helper Library. However, we're seeing multiple crashes in production related to WebCore and a couple related to JavaScriptCore. It might be important to note that these crashes are only happening on iOS 12 devices.
See below for details of some of the crashes:
1. VideoFullscreenControllerContext::rateChanged(bool, float)
Thread 0 name:
Thread 0 Crashed:
0 WebCore 0x000000024227c270
VideoFullscreenControllerContext::rateChanged(bool, float) + 308 (WebVideoFullscreenControllerAVKit.mm:396)
1 WebCore 0x000000024227c164 VideoFullscreenControllerContext::rateChanged(bool, float) + 40 (WebVideoFullscreenControllerAVKit.mm:388)
2 libdispatch.dylib 0x0000000238f236c8 _dispatch_call_block_and_release + 24 (init.c:1372)
3 libdispatch.dylib 0x0000000238f24484 _dispatch_client_callout + 16 (object.m:511)
4 libdispatch.dylib 0x0000000238f03b44 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 1012 (inline_internal.h:2441)
5 CoreFoundation 0x000000023947a1bc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813)
6 CoreFoundation 0x0000000239475084 __CFRunLoopRun + 1964 (CFRunLoop.c:3113)
7 CoreFoundation 0x00000002394745b8 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247)
8 GraphicsServices 0x000000023b6e8584 GSEventRunModal + 100 (GSEvent.c:2245)
9 UIKitCore 0x0000000265ebb558 UIApplicationMain + 212 (UIApplication.m:4341)
10 SteerClear 0x0000000100e2f078 main + 56 (AppDelegate.swift:25)
11 libdyld.dylib 0x0000000238f34b94 start + 4
-
2. VideoFullscreenControllerContext::currentTimeChanged(double, double)
Thread 0 name:
Thread 0 Crashed:
0 WebCore 0x000000021dcf7ea4 VideoFullscreenControllerContext::currentTimeChanged(double, double) + 296 (WebVideoFullscreenControllerAVKit.mm:370)
1 WebCore 0x000000021dcf7da0 VideoFullscreenControllerContext::currentTimeChanged(double, double) + 36 (WebVideoFullscreenControllerAVKit.mm:362)
2 libdispatch.dylib 0x000000021499f6c8 _dispatch_call_block_and_release + 24 (init.c:1372)
3 libdispatch.dylib 0x00000002149a0484 _dispatch_client_callout + 16 (object.m:511)
4 libdispatch.dylib 0x000000021494c9ec _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441)
5 CoreFoundation 0x0000000214ef61bc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813)
6 CoreFoundation 0x0000000214ef1084 __CFRunLoopRun + 1964 (CFRunLoop.c:3113)
7 CoreFoundation 0x0000000214ef05b8 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247)
8 GraphicsServices 0x0000000217164584 GSEventRunModal + 100 (GSEvent.c:2245)
9 UIKitCore 0x0000000241937558 UIApplicationMain + 212 (UIApplication.m:4341)
10 SteerClear 0x0000000100c0f078 main + 56 (AppDelegate.swift:25)
11 libdyld.dylib 0x00000002149b0b94 start + 4
-
3. WebCore::PlaybackSessionModelMediaElement::updateForEventName(WTF::AtomicString const&)
Thread 4 name:
Thread 4 Crashed:
0 WebCore 0x0000000197d825bc WebCore::PlaybackSessionModelMediaElement::updateForEventName(WTF::AtomicString const&) + 1240 (PlaybackSessionModelMediaElement.mm:150)
1 WebCore 0x0000000197d82564 WebCore::PlaybackSessionModelMediaElement::updateForEventName(WTF::AtomicString const&) + 1152 (PlaybackSessionModelMediaElement.mm:148)
2 WebCore 0x00000001986bdc28 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 16ul>) + 736 (EventTarget.cpp:292)
3 WebCore 0x00000001986bb548 WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 260 (EventTarget.cpp:234)
4 WebCore 0x00000001986b8460 WebCore::dispatchEventInDOM(WebCore::Event&, WebCore::EventPath const&) + 152 (EventDispatcher.cpp:91)
5 WebCore 0x00000001986b8128 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&, WebCore::Event&) + 700 (EventDispatcher.cpp:159)
6 WebCore 0x000000019886dd90 WebCore::HTMLMediaElement::dispatchEvent(WebCore::Event&) + 192 (HTMLMediaElement.cpp:5763)
7 WebCore 0x00000001986c0780 WebCore::GenericEventQueue::dispatchOneEvent() + 168 (GenericEventQueue.cpp:68)
8 WebCore 0x0000000198b6f918 WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired() + 204 (Function.h:56)
9 WebCore 0x0000000198b8cec0 WebCore::ThreadTimers::sharedTimerFiredInternal() + 352 (ThreadTimers.cpp:117)
10 WebCore 0x0000000198bd17ac WebCore::timerFired(__CFRunLoopTimer*, void*) + 28 (MainThreadSharedTimerCF.cpp:74)
11 CoreFoundation 0x000000018f0d6bf0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:1830)
12 CoreFoundation 0x000000018f0d6920 __CFRunLoopDoTimer + 864 (CFRunLoop.c:2417)
13 CoreFoundation 0x000000018f0d6154 __CFRunLoopDoTimers + 248 (CFRunLoop.c:2564)
14 CoreFoundation 0x000000018f0d1030 __CFRunLoopRun + 1880 (CFRunLoop.c:0)
15 CoreFoundation 0x000000018f0d05b8 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247)
16 WebCore 0x0000000197ef7ba4 RunWebThread(void*) + 592 (WebCoreThread.mm:612)
17 libsystem_pthread.dylib 0x000000018ed612fc _pthread_body + 128 (pthread.c:837)
18 libsystem_pthread.dylib 0x000000018ed6125c _pthread_start + 48 (pthread.c:864)
19 libsystem_pthread.dylib 0x000000018ed64d08 thread_start + 4
-
Any help would be appreciated. I have not been able to reproduce these crashes. However, we did get input from a user that a video never loaded and then the app crashed, so this could be related to memory.
来源:https://stackoverflow.com/questions/52727079/multiple-uiwebview-webcore-crashes