Bug 224584

Summary: Flaky crash under AudioSummingJunction::removeOutput() on Debug bots
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: Web AudioAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: cdumez, eric.carlson, ews-watchlist, glenn, jer.noble, peng.liu6, philipj, sergio, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Chris Dumez 2021-04-14 16:19:56 PDT
Flaky crash under AudioSummingJunction::removeOutput() on Debug bots due to Malloc assertions.
Comment 1 Chris Dumez 2021-04-14 16:20:11 PDT
Thread 15 Crashed:: offline renderer
0   com.apple.JavaScriptCore      	0x000000044a16007e WTFCrash + 14 (Assertions.cpp:305)
1   com.apple.JavaScriptCore      	0x000000044b9f83fb WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671)
2   com.apple.JavaScriptCore      	0x000000044a1a217b WTF::fastMalloc(unsigned long) + 235 (FastMalloc.cpp:524)
3   com.apple.WebCore             	0x000000042954db55 WTF::FastMalloc::malloc(unsigned long) + 21 (FastMalloc.h:273)
4   com.apple.WebCore             	0x000000042bb05ea2 bool WTF::VectorBufferBase<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::FastMalloc>::allocateBuffer<(WTF::FailureAction)0>(unsigned long) + 178 (Vector.h:301)
5   com.apple.WebCore             	0x000000042bb14398 bool WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::reserveInitialCapacity<(WTF::FailureAction)0>(unsigned long) + 248 (Vector.h:1220)
6   com.apple.WebCore             	0x000000042bb141fd WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::reserveInitialCapacity(unsigned long) + 29 (Vector.h:765)
7   com.apple.WebCore             	0x000000042bb140be WTF::Mapper<WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> WTF::copyToVectorOf<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> >(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&)::'lambda'(WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput const&), WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&, void>::map(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&, WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> WTF::copyToVectorOf<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> >(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&)::'lambda'(WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput const&) const&) + 94 (Vector.h:1657)
8   com.apple.WebCore             	0x000000042bb1404b WTF::Vector<WTF::Mapper<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>, void>::DestinationItemType, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> WTF::map<WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> WTF::copyToVectorOf<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> >(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&)::'lambda'(WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput const&), WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&>(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>&&, WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput&&) + 75 (Vector.h:1683)
9   com.apple.WebCore             	0x000000042bb13fe7 WTF::Vector<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> WTF::copyToVectorOf<WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput, WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> >(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&) + 39 (Vector.h:1765)
10  com.apple.WebCore             	0x000000042bb13fad WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutputCollection(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&) + 29 (AudioSummingJunction.h:57)
11  com.apple.WebCore             	0x000000042bb13f7d WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutputCollection(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits> const&) + 29 (AudioSummingJunction.h:58)
12  com.apple.WebCore             	0x000000042bb13f42 void WTF::Optional<WebCore::AudioSummingJunction::RenderingOutputCollection>::initialize<WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>&>(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>&) + 146 (Optional.h:395)
13  com.apple.WebCore             	0x000000042baf2555 void WTF::Optional<WebCore::AudioSummingJunction::RenderingOutputCollection>::emplace<WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>&>(WTF::HashSet<WebCore::AudioNodeOutput*, WTF::DefaultHash<WebCore::AudioNodeOutput*>, WTF::HashTraits<WebCore::AudioNodeOutput*>, WTF::HashTableTraits>&) + 53 (Optional.h:496)
14  com.apple.WebCore             	0x000000042baf2759 WebCore::AudioSummingJunction::removeOutput(WebCore::AudioNodeOutput&) + 361 (AudioSummingJunction.cpp:88)
15  com.apple.WebCore             	0x000000042bac5346 WebCore::AudioNodeInput::disconnect(WebCore::AudioNodeOutput*) + 390 (AudioNodeInput.cpp:71)
16  com.apple.WebCore             	0x000000042baca010 WebCore::AudioNodeOutput::disconnectAllInputs() + 240 (AudioNodeOutput.cpp:184)
Comment 2 Chris Dumez 2021-04-14 16:21:58 PDT
Created attachment 426059 [details]
Patch
Comment 3 EWS 2021-04-14 18:27:12 PDT
Committed r275985 (236537@main): <https://commits.webkit.org/236537@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426059 [details].
Comment 4 Radar WebKit Bug Importer 2021-04-14 18:28:14 PDT
<rdar://problem/76676845>