Bug 244841

Summary: [GStreamer] WebAudio drums demo makes WebKit GStreamer based ports crash
Product: WebKit Reporter: Xabier Rodríguez Calvar <calvaris>
Component: WebCore Misc.Assignee: Philippe Normand <philn>
Status: RESOLVED FIXED    
Severity: Normal CC: philn, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Xabier Rodríguez Calvar 2022-09-06 04:58:42 PDT
If I open https://webaudiodemos.appspot.com/MIDIDrums/index.html I am getting a crash either in WebKit GTK or WPE.
Comment 1 Philippe Normand 2022-09-06 05:29:25 PDT
Most likely a malloc restriction is being hit...

(gdb) bt
#0  0x00007f166d8d9bcb in WTFCrash () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#1  0x00007f16701a41e6 in  () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#2  0x00007f16701a41d6 in  () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007f1670816d22 in WebCore::AudioFileReader::createBus(float, bool) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007f167081736e in WTF::Detail::CallableWrapper<WebCore::createBusFromInMemoryAudioFile(void const*, unsigned long, bool, float)::$_4, void>::call() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007f166d9075e0 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f166d96b466 in WTF::wtfThreadEntryPoint(void*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f166db743ba in start_thread (arg=0x7f13c57fa640) at pthread_create.c:481
#8  0x00007f16697da7a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 2 Philippe Normand 2022-09-06 06:27:18 PDT
overflow actually...

(gdb) bt
#0  0x00007f57fa276c0e in WTFCrash() () at /app/webkit/Source/WTF/wtf/Assertions.cpp:328
#1  0x00007f5801506c09 in WTF::CrashOnOverflow::crash() () at WTF/Headers/wtf/CheckedArithmetic.h:109
#2  0x00007f5801506bd9 in WTF::CrashOnOverflow::overflowed() () at WTF/Headers/wtf/CheckedArithmetic.h:102
#3  0x00007f58030550f8 in WTF::Vector<std::unique_ptr<WebCore::AudioChannel, std::default_delete<WebCore::AudioChannel> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::at(unsigned long) (this=0x7f57e87ac310, i=4) at WTF/Headers/wtf/Vector.h:774
#4  0x00007f580305507d in WTF::Vector<std::unique_ptr<WebCore::AudioChannel, std::default_delete<WebCore::AudioChannel> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>::operator[](unsigned long) (this=0x7f57e87ac310, i=4) at WTF/Headers/wtf/Vector.h:784
#5  0x00007f5803054e81 in WebCore::AudioBus::channel(unsigned int) (this=0x7f57e87ac300, channel=4) at /app/webkit/Source/WebCore/platform/audio/AudioBus.h:78
#6  0x00007f580317b831 in WebCore::AudioFileReader::createBus(float, bool) (this=0x7f5560ff8ab0, sampleRate=44100, mixToMono=false) at /app/webkit/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:399
#7  0x00007f580317dd3c in WebCore::createBusFromInMemoryAudioFile(void const*, unsigned long, bool, float)::$_4::operator()() const (this=0x7f57e81e90e8) at /app/webkit/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:413
#8  0x00007f580317dcc9 in WTF::Detail::CallableWrapper<WebCore::createBusFromInMemoryAudioFile(void const*, unsigned long, bool, float)::$_4, void>::call() (this=0x7f57e81e90e0) at WTF/Headers/wtf/Function.h:53
#9  0x00007f57f8ec1a92 in WTF::Function<void ()>::operator()() const (this=0x7f5560ff8b90) at WTF/Headers/wtf/Function.h:82
#10 0x00007f57fa518f08 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) (newThreadContext=0x7f57e82ad440) at /app/webkit/Source/WTF/wtf/Threading.cpp:240
#11 0x00007f57fa5ceba5 in WTF::wtfThreadEntryPoint(void*) (context=0x7f57e82ad440) at /app/webkit/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:242
#12 0x00007f57fb8403ba in start_thread (arg=0x7f5560ff9640) at pthread_create.c:481
#13 0x00007f57f41da7a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 3 Philippe Normand 2022-09-06 09:56:10 PDT
Pull request: https://github.com/WebKit/WebKit/pull/4058
Comment 4 EWS 2022-09-07 03:17:26 PDT
Committed 254223@main (2aa13bb90ada): <https://commits.webkit.org/254223@main>

Reviewed commits have been landed. Closing PR #4058 and removing active labels.
Comment 5 Radar WebKit Bug Importer 2022-09-07 03:18:17 PDT
<rdar://problem/99642593>