Bug 81777

Summary: [GTK] ASSERT bug in WebAudio (AudioFileReader)
Product: WebKit Reporter: sangho park <gouache95>
Component: WebKitGTKAssignee: Philippe Normand <pnormand>
Status: RESOLVED FIXED    
Severity: Normal CC: donggwan.kim, dw.im, gouache95, pnormand, s.choi
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Patch mrobinson: review+

Description sangho park 2012-03-21 07:22:35 PDT
there is ASSERT bug in <decodeAudioForBusCreation() "Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:283">.

the code is below.
GRefPtr<GstBus> bus = adoptGRef(gst_pipeline_get_bus(GST_PIPELINE(m_pipeline)));

gst_pipeline_get_bus() returns FLOATING GstBus object. i think it's sane.
but in adoptGRef, ASSERT(!GST_OBJECT_IS_FLOATING(GST_OBJECT(ptr)))
then always i meet the segfault.

[O/S]
Linux 3.2.0-19-generic #30-Ubuntu SMP Fri Mar 16 16:27:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

[Build Option]
'--gtk --debug --web-audio --fullscreen-api --no-svg'

[command]
GtkLauncher --enable-webaudio=true --enable-webgl=true http://chromium.googlecode.com/svn/trunk/samples/audio/shiny-drum-machine.html

[Result]
ASSERTION FAILED: !GST_OBJECT_IS_FLOATING(GST_OBJECT(ptr))
../../Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp(130) : WTF::GRefPtr<T> WTF::adoptGRef(T*) [with T = _GstBus]
1   0x7fd8d28aff69 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x1c6cf69) [0x7fd8d28aff69]
2   0x7fd8d24ddcf6 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x189acf6) [0x7fd8d24ddcf6]
3   0x7fd8d24dd3c7 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x189a3c7) [0x7fd8d24dd3c7]
4   0x7fd8cfb6e53b /o/WebKit/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0(+0x4753b) [0x7fd8cfb6e53b]
5   0x7fd8cfb6d8fa /o/WebKit/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x16a) [0x7fd8cfb6d8fa]
6   0x7fd8cfb6dcc0 /o/WebKit/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0(+0x46cc0) [0x7fd8cfb6dcc0]
7   0x7fd8cfb6e0ba /o/WebKit/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0(g_main_loop_run+0x6a) [0x7fd8cfb6e0ba]
8   0x7fd8d24de0c4 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x189b0c4) [0x7fd8d24de0c4]
9   0x7fd8d24de447 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x189b447) [0x7fd8d24de447]
10  0x7fd8d24e0950 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x189d950) [0x7fd8d24e0950]
11  0x7fd8d24cf718 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188c718) [0x7fd8d24cf718]
12  0x7fd8d24cfbfc /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188cbfc) [0x7fd8d24cfbfc]
13  0x7fd8d24d00ce /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188d0ce) [0x7fd8d24d00ce]
14  0x7fd8d24cdeca /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188aeca) [0x7fd8d24cdeca]
15  0x7fd8d24cde04 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188ae04) [0x7fd8d24cde04]
16  0x7fd8d24cf1e1 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188c1e1) [0x7fd8d24cf1e1]
17  0x7fd8d24cf160 /o/WebKit/WebKitBuild/Debug/.libs/libwebkitgtk-3.0.so.0(+0x188c160) [0x7fd8d24cf160]
18  0x7fd8cf0029fd /o/WebKit/WebKitBuild/Debug/.libs/libjavascriptcoregtk-3.0.so.0(+0x68d9fd) [0x7fd8cf0029fd]
19  0x7fd8cf003063 /o/WebKit/WebKitBuild/Debug/.libs/libjavascriptcoregtk-3.0.so.0(+0x68e063) [0x7fd8cf003063]
20  0x7fd8cf911e9a /lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7fd8cf911e9a]
21  0x7fd8cf63f74d /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7fd8cf63f74d]
Comment 1 Philippe Normand 2012-03-21 08:51:03 PDT
Hum, yeah I indeed didn't test a Debug build before landing the nested-loop-support patch of the AudioFileReader. I'll look into this issue, thanks for reporting!
Comment 2 Philippe Normand 2012-03-22 08:26:03 PDT
Created attachment 133270 [details]
Patch
Comment 3 Philippe Normand 2012-03-22 08:31:07 PDT
Committed r111706: <http://trac.webkit.org/changeset/111706>