Bug 187145 - Crash in WebCore::WebAnimation::timeToNextRequiredTick when running imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html
Summary: Crash in WebCore::WebAnimation::timeToNextRequiredTick when running imported/...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Animations (show other bugs)
Version: WebKit Nightly Build
Hardware: PC Linux
: P2 Normal
Assignee: Antoine Quint
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-06-28 10:44 PDT by Michael Catanzaro
Modified: 2018-07-03 03:39 PDT (History)
6 users (show)

See Also:


Attachments
Patch (2.21 KB, patch)
2018-07-02 06:20 PDT, Antoine Quint
dino: review+
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews200 for win-future (12.87 MB, application/zip)
2018-07-02 11:35 PDT, EWS Watchlist
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2018-06-28 10:44:21 PDT
Layout test imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html is crashing on the EWS in bug #186536, where I fix WTF's internal std::optional to crash when dereferencing nullopt (instead of returning 0 as it currently does). We'll likely add a crash expectation, which should be removed when this is fixed.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000108d57170 WTFCrash + 16 (Assertions.cpp:267)
1   com.apple.WebCore             	0x0000000115378439 std::optional<WTF::Seconds>::value() + 73 (Optional.h:562)
2   com.apple.WebCore             	0x000000011539b39f WebCore::WebAnimation::timeToNextRequiredTick() const + 207 (WebAnimation.cpp:1027)
3   com.apple.WebCore             	0x000000011539b124 WebCore::DocumentTimeline::updateAnimationSchedule() + 228 (DocumentTimeline.cpp:196)
4   com.apple.WebCore             	0x000000011539af0c WebCore::DocumentTimeline::performInvalidationTask() + 220 (DocumentTimeline.cpp:178)
5   com.apple.WebCore             	0x00000001153bf73d WTF::Function<void ()>::CallableWrapper<std::__1::__bind<void (WebCore::DocumentTimeline::*)(), WebCore::DocumentTimeline*> >::call() + 221 (Function.h:101)
6   com.apple.WebCore             	0x0000000113b2972b WTF::Function<void ()>::operator()() const + 139 (Function.h:56)
7   com.apple.WebCore             	0x0000000114249d59 WebCore::GenericTaskQueue<WebCore::Timer>::enqueueTask(WTF::Function<void ()>&&)::'lambda'()::operator()() const + 137 (GenericTaskQueue.h:95)
8   com.apple.WebCore             	0x0000000114249b69 WTF::Function<void ()>::CallableWrapper<WebCore::GenericTaskQueue<WebCore::Timer>::enqueueTask(WTF::Function<void ()>&&)::'lambda'()>::call() + 25 (Function.h:101)
9   com.apple.WebCore             	0x0000000113b2972b WTF::Function<void ()>::operator()() const + 139 (Function.h:56)
10  com.apple.WebCore             	0x000000011644d9c7 WebCore::TaskDispatcher<WebCore::Timer>::dispatchOneTask() + 119 (GenericTaskQueue.cpp:80)
11  com.apple.WebCore             	0x000000011644d77f WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired() + 255 (GenericTaskQueue.cpp:66)
12  com.apple.WebCore             	0x0000000116451d01 WebCore::TaskDispatcher<WebCore::Timer>::sharedTimer()::$_1::operator()() const + 17 (GenericTaskQueue.cpp:49)
13  com.apple.WebCore             	0x0000000116451cc9 WTF::Function<void ()>::CallableWrapper<WebCore::TaskDispatcher<WebCore::Timer>::sharedTimer()::$_1>::call() + 25 (Function.h:101)
14  com.apple.WebCore             	0x0000000113b2972b WTF::Function<void ()>::operator()() const + 139 (Function.h:56)
15  com.apple.WebCore             	0x0000000113b7c0d9 WebCore::Timer::fired() + 25 (Timer.h:132)
16  com.apple.WebCore             	0x0000000116486770 WebCore::ThreadTimers::sharedTimerFiredInternal() + 480 (ThreadTimers.cpp:117)
17  com.apple.WebCore             	0x000000011649c161 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const + 33 (ThreadTimers.cpp:69)
18  com.apple.WebCore             	0x000000011649c119 WTF::Function<void ()>::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0>::call() + 25 (Function.h:101)
19  com.apple.WebCore             	0x0000000113b2972b WTF::Function<void ()>::operator()() const + 139 (Function.h:56)
20  com.apple.WebCore             	0x000000011645e575 WebCore::MainThreadSharedTimer::fired() + 101 (MainThreadSharedTimer.cpp:55)
21  com.apple.WebCore             	0x0000000116503dd9 WebCore::timerFired(__CFRunLoopTimer*, void*) + 41 (MainThreadSharedTimerCF.cpp:74)
22  com.apple.CoreFoundation      	0x00007fffca6afe04 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
23  com.apple.CoreFoundation      	0x00007fffca6afa93 __CFRunLoopDoTimer + 1075
24  com.apple.CoreFoundation      	0x00007fffca6af5ea __CFRunLoopDoTimers + 298
25  com.apple.CoreFoundation      	0x00007fffca6a6fc1 __CFRunLoopRun + 2081
26  com.apple.CoreFoundation      	0x00007fffca6a6544 CFRunLoopRunSpecific + 420
27  DumpRenderTree                	0x000000010842d529 runTest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 7129 (DumpRenderTree.mm:2024)
28  DumpRenderTree                	0x000000010842b8ad runTestingServerLoop() + 349 (DumpRenderTree.mm:1166)
29  DumpRenderTree                	0x000000010842ae14 dumpRenderTree(int, char const**) + 1636 (DumpRenderTree.mm:1268)
30  DumpRenderTree                	0x000000010842df1f DumpRenderTreeMain(int, char const**) + 111 (DumpRenderTree.mm:1387)
31  DumpRenderTree                	0x00000001084af8e2 main + 34 (DumpRenderTreeMain.mm:34)
32  libdyld.dylib                 	0x00007fffe026f235 start + 1
Comment 1 Antoine Quint 2018-07-02 06:20:51 PDT
Created attachment 344099 [details]
Patch
Comment 2 Michael Catanzaro 2018-07-02 07:54:08 PDT
Comment on attachment 344099 [details]
Patch

You'll want to remove the crash expectation, as well.
Comment 3 Antoine Quint 2018-07-02 08:13:03 PDT
(In reply to Michael Catanzaro from comment #2)
> Comment on attachment 344099 [details]
> Patch
> 
> You'll want to remove the crash expectation, as well.

Did not find any expectation for either imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html or this bug.
Comment 4 EWS Watchlist 2018-07-02 11:35:27 PDT
Comment on attachment 344099 [details]
Patch

Attachment 344099 [details] did not pass win-ews (win):
Output: https://webkit-queues.webkit.org/results/8414065

New failing tests:
http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-video.html
Comment 5 EWS Watchlist 2018-07-02 11:35:39 PDT
Created attachment 344119 [details]
Archive of layout-test-results from ews200 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews200  Port: win-future  Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Comment 6 Dean Jackson 2018-07-02 12:43:08 PDT
Comment on attachment 344099 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=344099&action=review

> Source/WebCore/animation/WebAnimation.cpp:1012
> +    auto animationCurrentTime = currentTime();
> +    if (animationCurrentTime) {

if (auto animationCurrentTime = currentTime()) {
Comment 7 Antoine Quint 2018-07-02 13:46:21 PDT
Committed r233430: <https://trac.webkit.org/changeset/233430>
Comment 8 Radar WebKit Bug Importer 2018-07-02 13:48:10 PDT
<rdar://problem/41739056>
Comment 9 Antoine Quint 2018-07-03 01:31:59 PDT
Committed r233458: <https://trac.webkit.org/changeset/233458>