Bug 163511 - [GTK] Several tests crashing on debug bot in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::repaint
Summary: [GTK] Several tests crashing on debug bot in (anonymous namespace)::MediaPlay...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Other
Hardware: PC Linux
: P2 Normal
Assignee: Miguel Gomez
URL:
Keywords:
Depends on: 163602
Blocks:
  Show dependency treegraph
 
Reported: 2016-10-16 18:02 PDT by Michael Catanzaro
Modified: 2016-12-19 12:18 PST (History)
4 users (show)

See Also:


Attachments
Patch (3.84 KB, patch)
2016-10-17 07:16 PDT, Miguel Gomez
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews121 for ios-simulator-wk2 (10.31 MB, application/zip)
2016-10-17 08:29 PDT, Build Bot
no flags Details
Patch (6.48 KB, patch)
2016-10-20 08:01 PDT, Miguel Gomez
no flags Details | Formatted Diff | Diff
Patch (6.50 KB, patch)
2016-10-21 01:28 PDT, Miguel Gomez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2016-10-16 18:02:31 PDT
The GTK+ debug bot is exiting early due to a bunch of crashes in media elements code. I wonder if it could be related to r207287 "[GTK] Video playback doesn't work properly with accelerated compositing disabled".

This backtrace is typical:

Thread 1 (Thread 0x7f1b8cfd1700 (LWP 5543)):
#0  0x00007f1c3f074162 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:323
#1  0x00007f1c4767a7fc in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::repaint (this=0x7f1c2e9e1240) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:564
#2  0x00007f1c4767aa0f in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::triggerRepaint (this=0x7f1c2e9e1240, sample=0x5ba0f0) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:613
#3  0x00007f1c4767aa81 in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::repaintCallback (player=0x7f1c2e9e1240, sample=0x5ba0f0) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:633
#4  0x00007f1c3949ef53 in g_cclosure_marshal_VOID__BOXEDv () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/gobject/gmarshal.c:1950
#5  0x00007f1c3949c3b4 in _g_closure_invoke_va () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/gobject/gclosure.c:831
#6  0x00007f1c394b54c8 in g_signal_emit_valist () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/gobject/gsignal.c:3214
#7  0x00007f1c394b5dc2 in g_signal_emit () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/gobject/gsignal.c:3361
#8  0x00007f1c47684c36 in webkitVideoSinkRepaintRequested (sink=0x8a6c00, sample=0x5ba0f0) at ../../Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:184
#9  0x00007f1c47685868 in VideoRenderRequestScheduler::requestRender (this=0x8a6920, sink=0x8a6c00, buffer=0x7f1bac088740) at ../../Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:110
#10 0x00007f1c4768501b in webkitVideoSinkRender (baseSink=0x8a6c00, buffer=0x7f1bac088740) at ../../Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:265
#11 0x00007f1c3aaaf6fd in gst_base_sink_do_preroll () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasesink.c:2289
#12 0x00007f1c3aab02bb in gst_base_sink_do_sync () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasesink.c:2508
#13 0x00007f1c3aab1208 in gst_base_sink_chain_unlocked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasesink.c:3494
#14 0x00007f1c3aab2b64 in gst_base_sink_chain_main () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasesink.c:3655
#15 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#16 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#17 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#18 0x00007f1c3ab4afa3 in gst_proxy_pad_chain_default () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstghostpad.c:126
#19 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#20 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#21 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#22 0x00007f1c3ab4afa3 in gst_proxy_pad_chain_default () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstghostpad.c:126
#23 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#24 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#25 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#26 0x00007f1c3aabc72d in gst_base_transform_chain () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasetransform.c:2369
#27 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#28 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#29 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#30 0x00007f1c3aabc72d in gst_base_transform_chain () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasetransform.c:2369
#31 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#32 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#33 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#34 0x00007f1c3aabc72d in gst_base_transform_chain () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasetransform.c:2369
#35 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#36 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#37 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#38 0x00007f1c3aabc72d in gst_base_transform_chain () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/libs/gst/base/gstbasetransform.c:2369
#39 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#40 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#41 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#42 0x00007f1c3ab4afa3 in gst_proxy_pad_chain_default () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstghostpad.c:126
#43 0x00007f1c3ab5a01a in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4156
#44 gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4408
#45 0x00007f1c3ab61b0e in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gstpad.c:4527
#46 0x00007f1beccb8d57 in gst_queue_push_one () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/plugins/elements/gstqueue.c:1338
#47 gst_queue_loop () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/plugins/elements/gstqueue.c:1485
#48 0x00007f1c3ab8b621 in gst_task_func () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.8.0/gst/gsttask.c:332
#49 0x00007f1c393c17e8 in g_thread_pool_thread_proxy () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gthreadpool.c:307
#50 0x00007f1c393c0e65 in g_thread_proxy () at /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gthread.c:764
#51 0x00007f1c3ad540a4 in start_thread (arg=0x7f1b8cfd1700) at pthread_create.c:309
#52 0x00007f1c3648a87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Comment 1 Michael Catanzaro 2016-10-16 18:03:16 PDT
(Not updating any expectations for this.)
Comment 2 Miguel Gomez 2016-10-17 01:09:41 PDT
> The GTK+ debug bot is exiting early due to a bunch of crashes in media
> elements code. I wonder if it could be related to r207287 "[GTK] Video
> playback doesn't work properly with accelerated compositing disabled".

Could be. Checking.
Comment 3 Miguel Gomez 2016-10-17 07:16:53 PDT
Created attachment 291816 [details]
Patch
Comment 4 Build Bot 2016-10-17 08:29:53 PDT
Comment on attachment 291816 [details]
Patch

Attachment 291816 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/2304645

New failing tests:
media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html
Comment 5 Build Bot 2016-10-17 08:29:56 PDT
Created attachment 291820 [details]
Archive of layout-test-results from ews121 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6
Comment 6 WebKit Commit Bot 2016-10-17 09:59:00 PDT
Comment on attachment 291816 [details]
Patch

Clearing flags on attachment: 291816

Committed r207409: <http://trac.webkit.org/changeset/207409>
Comment 7 WebKit Commit Bot 2016-10-17 09:59:04 PDT
All reviewed patches have been landed.  Closing bug.
Comment 8 WebKit Commit Bot 2016-10-18 10:09:28 PDT
Re-opened since this is blocked by bug 163602
Comment 9 Miguel Gomez 2016-10-20 07:08:56 PDT
It seems that we can't rely on HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated() to check whether accelerated compositing is enabled or not, as there are situations where this method will return false when acc compositing is enabled.

Due to this,  with the previous patch some frames were processed through the slow path instead of the acc compositing one, causing the timeouts in some tests.

I'm working on a new patch that uses a new method to check whether acc compositing is enabled. This should fix the timeouts.
Comment 10 Miguel Gomez 2016-10-20 08:01:41 PDT
Created attachment 292190 [details]
Patch
Comment 11 Carlos Garcia Campos 2016-10-20 08:18:30 PDT
Comment on attachment 292190 [details]
Patch

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

> Source/WebCore/html/HTMLMediaElement.cpp:4584
> +    return document().settings()->acceleratedCompositingEnabled();

You should null check settings()
Comment 12 Miguel Gomez 2016-10-21 01:28:56 PDT
Created attachment 292332 [details]
Patch
Comment 13 WebKit Commit Bot 2016-10-21 03:29:35 PDT
Comment on attachment 292332 [details]
Patch

Clearing flags on attachment: 292332

Committed r207666: <http://trac.webkit.org/changeset/207666>
Comment 14 WebKit Commit Bot 2016-10-21 03:29:39 PDT
All reviewed patches have been landed.  Closing bug.
Comment 15 Michael Catanzaro 2016-10-22 10:16:19 PDT
It broke imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-within-document.html, see bug #163850.
Comment 16 Michael Catanzaro 2016-12-19 12:18:46 PST
(In reply to comment #15)
> It broke
> imported/w3c/web-platform-tests/html/semantics/embedded-content/media-
> elements/playing-the-media-resource/pause-move-within-document.html, see bug
> #163850.

Shame, it would be good to know why this broke.