Bug 207071

Summary: ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
Product: WebKit Reporter: Jason Lawrence <Lawrence.j>
Component: AnimationsAssignee: Antoine Quint <graouts>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, dino, graouts, Hironori.Fujii, tsavell, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=204776
Attachments:
Description Flags
Update Test Expectations
none
Patch none

Description Jason Lawrence 2020-01-31 14:58:33 PST
animations/keyframe-autoclose-brace.html

Description:
This test is flaky crashing on iOS debug wk2. It has a potential regression starting at 251541.

History:
https://results.webkit.org/?suite=layout-tests&test=animations%2Fkeyframe-autoclose-brace.html&limit=42404&platform=ios&style=debug

Crash log:
No crash log found for com.apple.WebKit.WebContent.Development:98214.

stdout:

stderr:
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
/Volumes/Data/slave/ios-simulator-13-debug/build/WebKitBuild/Debug-iphonesimulator/usr/local/include/wtf/HashTable.h(628) : void WTF::HashTable<WebCore::CSSPropertyID, WebCore::CSSPropertyID, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID>, WTF::HashTraits<WebCore::CSSPropertyID> >::checkKey(const T &) [Key = WebCore::CSSPropertyID, Value = WebCore::CSSPropertyID, Extractor = WTF::IdentityExtractor, HashFunctions = WTF::IntHash<unsigned int>, Traits = WTF::HashTraits<WebCore::CSSPropertyID>, KeyTraits = WTF::HashTraits<WebCore::CSSPropertyID>, HashTranslator = WTF::IdentityHashTranslator<WTF::HashTraits<WebCore::CSSPropertyID>, WTF::IntHash<unsigned int> >, T = WebCore::CSSPropertyID]
1   0x115a5d009 WTFCrash
2   0x11ab0d3bb WTFCrashWithInfo(int, char const*, char const*, int)
3   0x11c9235dd void WTF::HashTable<WebCore::CSSPropertyID, WebCore::CSSPropertyID, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID>, WTF::HashTraits<WebCore::CSSPropertyID> >::checkKey<WTF::IdentityHashTranslator<WTF::HashTraits<WebCore::CSSPropertyID>, WTF::IntHash<unsigned int> >, WebCore::CSSPropertyID>(WebCore::CSSPropertyID const&)
4   0x11c9232bf WTF::HashTableAddResult<WTF::HashTableIterator<WebCore::CSSPropertyID, WebCore::CSSPropertyID, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID>, WTF::HashTraits<WebCore::CSSPropertyID> > > WTF::HashTable<WebCore::CSSPropertyID, WebCore::CSSPropertyID, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID>, WTF::HashTraits<WebCore::CSSPropertyID> >::add<WTF::IdentityHashTranslator<WTF::HashTraits<WebCore::CSSPropertyID>, WTF::IntHash<unsigned int> >, WebCore::CSSPropertyID const&, WebCore::CSSPropertyID const&>(WebCore::CSSPropertyID const&, WebCore::CSSPropertyID const&)
5   0x11c923273 WTF::HashTable<WebCore::CSSPropertyID, WebCore::CSSPropertyID, WTF::IdentityExtractor, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID>, WTF::HashTraits<WebCore::CSSPropertyID> >::add(WebCore::CSSPropertyID const&)
6   0x11c923204 WTF::HashSet<WebCore::CSSPropertyID, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID> >::add(WebCore::CSSPropertyID const&)
7   0x11c908e54 WebCore::compileTransitionPropertiesInStyle(WebCore::RenderStyle const&, WTF::HashSet<WebCore::CSSPropertyID, WTF::IntHash<unsigned int>, WTF::HashTraits<WebCore::CSSPropertyID> >&, bool&)
8   0x11c908607 WebCore::AnimationTimeline::updateCSSTransitionsForElement(WebCore::Element&, WebCore::RenderStyle const&, WebCore::RenderStyle const&)
9   0x11e991b94 WebCore::Style::TreeResolver::createAnimatedElementUpdate(std::__1::unique_ptr<WebCore::RenderStyle, std::__1::default_delete<WebCore::RenderStyle> >, WebCore::Element&, WebCore::Style::Change)
10  0x11e9914a3 WebCore::Style::TreeResolver::resolveElement(WebCore::Element&)
11  0x11e992e99 WebCore::Style::TreeResolver::resolveComposedTree()
12  0x11e993c56 WebCore::Style::TreeResolver::resolve()
13  0x11cf02f8d WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
14  0x11cf03b0a WebCore::Document::updateStyleIfNeeded()
15  0x11dcbd6b5 WebCore::FrameViewLayoutContext::updateStyleForLayout()
16  0x11dcbccba WebCore::FrameViewLayoutContext::layout()
17  0x11dcbc41c WebCore::FrameViewLayoutContext::layoutTimerFired()
18  0x11dccd951 decltype(*(std::__1::forward<WebCore::FrameViewLayoutContext*&>(fp0)).*fp()) std::__1::__invoke<void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*&, void>(void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*&)
19  0x11dccd8b0 std::__1::__bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, 0ul, std::__1::tuple<> >(void (WebCore::FrameViewLayoutContext::*&)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
20  0x11dccd85c std::__1::__bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*>::operator()<>()
21  0x11dccd7f9 WTF::Detail::CallableWrapper<std::__1::__bind<void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*>, void>::call()
22  0x11ab2150a WTF::Function<void ()>::operator()() const
23  0x11abdb029 WebCore::Timer::fired()
24  0x11df08dba WebCore::ThreadTimers::sharedTimerFiredInternal()
25  0x11df11a21 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
26  0x11df119d9 WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
27  0x11ab2150a WTF::Function<void ()>::operator()() const
28  0x11dece5f7 WebCore::MainThreadSharedTimer::fired()
29  0x11df6ff86 WebCore::timerFired(__CFRunLoopTimer*, void*)
30  0x10d8a8b94 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
31  0x10d8a8882 __CFRunLoopDoTimer
LEAK: 1 WebPageProxy
Comment 1 Radar WebKit Bug Importer 2020-01-31 14:59:02 PST
<rdar://problem/59076249>
Comment 2 Jason Lawrence 2020-01-31 15:18:27 PST
Created attachment 389425 [details]
Update Test Expectations
Comment 3 Truitt Savell 2020-01-31 15:25:11 PST
Comment on attachment 389425 [details]
Update Test Expectations

Clearing flags on attachment: 389425

Committed r255525: <https://trac.webkit.org/changeset/255525>
Comment 4 Alexey Proskuryakov 2020-02-01 18:35:22 PST
This is almost 100% asserting, almost certainly a regression from http://trac.webkit.org/r251543
Comment 5 Antoine Quint 2020-02-02 13:51:25 PST
Created attachment 389480 [details]
Patch
Comment 6 Dean Jackson 2020-02-02 14:22:05 PST
Comment on attachment 389480 [details]
Patch

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

> Source/WebCore/ChangeLog:10
> +        We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
> +        because we wouldn't know how to animate that CSS property.

Can you write a test that would have reproducibly crashed? How did we get an invalid property?
Comment 7 WebKit Commit Bot 2020-02-02 15:18:15 PST
The commit-queue encountered the following flaky tests while processing attachment 389480 [details]:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.
Comment 8 WebKit Commit Bot 2020-02-02 15:18:51 PST
Comment on attachment 389480 [details]
Patch

Clearing flags on attachment: 389480

Committed r255552: <https://trac.webkit.org/changeset/255552>
Comment 9 WebKit Commit Bot 2020-02-02 15:18:53 PST
All reviewed patches have been landed.  Closing bug.
Comment 10 Fujii Hironori 2020-02-02 23:20:54 PST
*** Bug 204776 has been marked as a duplicate of this bug. ***