Bug 106182

Summary: Regression(r138786): Causes webaudio tests to crash
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebCore Misc.Assignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: d-r, eric.carlson, feature-media-reviews, mrobinson, pnormand, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 105293    
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Description Chris Dumez 2013-01-05 11:07:10 PST
<http://trac.webkit.org/changeset/138786> is causing webaudio tests to crash when using gstreamer 0.10.36:
crash log for WebProcess (pid <unknown>):
STDOUT: Timed out waiting for initial response from web process
STDERR: #PROCESS UNRESPONSIVE - WebProcess

Tests failing:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r138834%20%287688%29/results.html
Comment 1 Chris Dumez 2013-01-05 13:37:23 PST
backtrace:
http://pastebin.com/TB3mKWeW
Comment 2 Chris Dumez 2013-01-05 13:46:05 PST
GST_DEBUG=webkit*:5 trace

crash log for WebProcess (pid <unknown>):
STDOUT: Timed out waiting for initial response from web process
STDERR: 0:00:02.940318621 ^[[333m 4184^[[00m      0x102c990 ^[[36mDEBUG  ^[[00m ^[[00m   webkitwebaudiosrc /home/chris/unencrypted/WebKit/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:430:webKitWebAudioSrcChangeState:<webkitwebaudiosrc0>^[[00m PLAYING->PAUSED
STDERR: #PROCESS UNRESPONSIVE - WebProcess
Comment 3 Chris Dumez 2013-01-05 13:51:35 PST
Better backtrace with gstreamer debug symbols:
http://pastebin.com/naBeKqHi
Comment 4 Chris Dumez 2013-01-05 14:26:44 PST
Created attachment 181445 [details]
Patch

I found the part of the patch that caused the regression. I'm proposing a partial revert since the part in question does not seem essential.
Comment 5 Chris Dumez 2013-01-05 14:46:12 PST
Of course, feel free to reassign and make a proper fix if you prefer not to revert this part. I am also happy to test patches if needed.
Comment 6 Philippe Normand 2013-01-06 01:59:06 PST
I don't have time to test the patch now but if it works with gst 1.0 I'd be fine marking it r+.

Those changes were made based on the gst 1.0 docs of gstbasesrc IIRC so if the revert doesn't work with 1.0 you can use ifdefs.

The test timeouts were due to the source element never going to PLAYING BTW, maybe the ChangeLog can mention that. Thanks!
Comment 7 Chris Dumez 2013-01-06 02:22:49 PST
(In reply to comment #6)
> I don't have time to test the patch now but if it works with gst 1.0 I'd be fine marking it r+.
> 
> Those changes were made based on the gst 1.0 docs of gstbasesrc IIRC so if the revert doesn't work with 1.0 you can use ifdefs.
> 
> The test timeouts were due to the source element never going to PLAYING BTW, maybe the ChangeLog can mention that. Thanks!

I haven't tested with gstreamer 1.0. It would be good if someone using GTK port could.
I'll update the Changelog.
Comment 8 Chris Dumez 2013-01-06 02:28:18 PST
Created attachment 181455 [details]
Patch

Update Changelog.
Comment 9 Chris Dumez 2013-01-06 09:30:20 PST
Created attachment 181461 [details]
Patch

Update Changelog again. As it turns out, the regression does not affect gstreamer 0.10.x only. I have built webkitgtk with web audio support on and I can reproduce the same issue (unresponsive WebProcess). My patch works fine on webkitgtk / gstreamer 1.0 and webkitefl / gstreamer 0.10.
Comment 10 Chris Dumez 2013-01-07 01:15:16 PST
Temporarily skipping those test cases for WK2 EFL until this regression is fixed:
http://trac.webkit.org/changeset/138930
Comment 11 Chris Dumez 2013-01-07 05:23:25 PST
Comment on attachment 181461 [details]
Patch

Clearing cq for now. I'll update the patch to unskip the test cases.
Comment 12 Chris Dumez 2013-01-07 05:27:46 PST
Committed r138935: <http://trac.webkit.org/changeset/138935>