Bug 214798 - [GTK][WPE] http/tests/images/image-supports-video.html is a flaky timeout
Summary: [GTK][WPE] http/tests/images/image-supports-video.html is a flaky timeout
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Images (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-07-26 06:21 PDT by Diego Pino
Modified: 2021-08-19 05:22 PDT (History)
4 users (show)

See Also:


Attachments
full crash log with threads (87.40 KB, text/plain)
2021-04-02 08:15 PDT, Carlos Alberto Lopez Perez
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Pino 2020-07-26 06:21:38 PDT
http/tests/images/image-supports-video.html [ Timeout Missing ]

First timeout flaky failure on r264602.

Diff: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r264881%20(14889)/http/tests/images/image-supports-video-diff.txt

--- /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/http/tests/images/image-supports-video-expected.txt
+++ /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/http/tests/images/image-supports-video-actual.txt
@@ -1,2 +1,2 @@
-  
-PASS: video source selected.
+FAIL: Timed out waiting for notifyDone to be called
+
Comment 1 Lauro Moura 2020-08-31 14:18:12 PDT
Also happening in WPE.

Expectation moved to glib in r266368.
Comment 2 Carlos Alberto Lopez Perez 2021-04-02 08:14:58 PDT
This test also crashes sometimes.

When it crashes it gives this backtrace:


Thread 1 (Thread 0x7ff6f16e0700 (LWP 106173)):
#0  g_logv (log_domain=0x7ff803b42240 <g_log_domain_gstreamer> "GStreamer", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413
#1  0x00007ff803cea973 in g_log (log_domain=<optimized out>, log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ff803d42ad0 "%s: assertion '%s' failed") at ../glib/gmessages.c:1451
#2  0x00007ff803ceb19d in g_return_if_fail_warning (log_domain=<optimized out>, pretty_function=pretty_function@entry=0x7ff803b5e6c0 <__func__.9> "gst_stream_get_stream_id", expression=expression@entry=0x7ff803b51533 "GST_IS_STREAM (stream)") at ../glib/gmessages.c:2883
#3  0x00007ff803b06822 in gst_stream_get_stream_id (stream=0x0 [GstStream]) at ../gst/gststreams.c:265
#4  gst_stream_get_stream_id (stream=0x0 [GstStream]) at ../gst/gststreams.c:263
#5  0x00007ff7ac1840c0 in get_output_for_slot (slot=slot@entry=0x7ff6d405a350) at ../gst/playback/gstdecodebin3.c:1534
#6  0x00007ff7ac188880 in idle_reconfigure (pad=0x7ff6d401aa10 [GstMultiQueuePad|src_0], info=<optimized out>, slot=0x7ff6d405a350) at ../gst/playback/gstdecodebin3.c:2324
#7  0x00007ff803adf297 in gst_pad_add_probe (pad=0x7ff6d401aa10 [GstMultiQueuePad|src_0], mask=<optimized out>, mask@entry=GST_PAD_PROBE_TYPE_IDLE, callback=callback@entry=0x7ff7ac1887c0 <idle_reconfigure>, user_data=0x7ff6d405a350, destroy_data=destroy_data@entry=0x0) at ../gst/gstpad.c:1501
#8  0x00007ff7ac18a488 in handle_stream_switch (dbin=0x7ff6e001c030 [GstDecodebin3|decodebin3-0], select_streams=<optimized out>, seqnum=<optimized out>) at ../gst/playback/gstdecodebin3.c:2661
#9  0x00007ff7ac18a91c in gst_decodebin3_send_event (element=0x7ff6e001c030 [GstDecodebin3|decodebin3-0], event=0x7ff6e0029580 [GstEvent]) at ../gst/playback/gstdecodebin3.c:2784
#10 0x00007ff803abf4da in gst_element_send_event (element=0x7ff6e001c030 [GstDecodebin3|decodebin3-0], event=0x7ff6e0029580 [GstEvent]) at ../gst/gstelement.c:1947
#11 0x00007ff81649fbc5 in WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage(_GstMessage*) (this=0x7ff75c65d000, message=0x7ff6d4001990 [GstMessage]) at ../../Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:336
#12 0x00007ff81649fc5f in operator()() const (__closure=0x7ff75c64b080) at ../../Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:364
#13 0x00007ff8164a2bfc in WTF::Detail::CallableWrapper<WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline()::<lambda(GstBus*, GstMessage*, gpointer)>::<lambda()>, void>::call(void) (this=0x7ff75c64b078) at WTF/Headers/wtf/Function.h:52
#14 0x00007ff811b94fe3 in WTF::Function<void ()>::operator()() const (this=0x7ff6f16df8f0) at WTF/Headers/wtf/Function.h:83
#15 0x00007ff818f57005 in WTF::RunLoop::performWork() (this=0x7ff75c65b000) at ../../Source/WTF/wtf/RunLoop.cpp:133
#16 0x00007ff818fe57fa in operator()(gpointer) const (__closure=0x0, userData=0x7ff75c65b000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:80
#17 0x00007ff818fe581e in _FUN(gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:82
#18 0x00007ff818fe578d in operator()(GSource*, GSourceFunc, gpointer) const (__closure=0x0, source=0x7ff6e0002dc0, callback=0x7ff818fe5801 <_FUN(gpointer)>, userData=0x7ff75c65b000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:53
#19 0x00007ff818fe57db in _FUN(GSource*, GSourceFunc, gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:56
#20 0x00007ff803ce2dbf in g_main_dispatch (context=0x7ff6e0000b60) at ../glib/gmain.c:3337
#21 g_main_context_dispatch (context=0x7ff6e0000b60) at ../glib/gmain.c:4055
#22 0x00007ff803ce3168 in g_main_context_iterate (context=0x7ff6e0000b60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131
#23 0x00007ff803ce3483 in g_main_loop_run (loop=0x7ff6e0002da0) at ../glib/gmain.c:4329
#24 0x00007ff818fe5da4 in WTF::RunLoop::run() () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:108
#25 0x00007ff8164a0147 in WebCore::ImageDecoderGStreamer::InnerDecoder::run() (this=0x7ff75c65d000) at ../../Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:388
#26 0x00007ff8164a0257 in operator()() const (__closure=0x7ff75c6654a8) at ../../Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:405
#27 0x00007ff8164a2bbc in WTF::Detail::CallableWrapper<WebCore::ImageDecoderGStreamer::pushEncodedData(const WebCore::SharedBuffer&)::<lambda()>, void>::call(void) (this=0x7ff75c6654a0) at WTF/Headers/wtf/Function.h:52
#28 0x00007ff811b94fe3 in WTF::Function<void ()>::operator()() const (this=0x7ff6f16dfc30) at WTF/Headers/wtf/Function.h:83
#29 0x00007ff818f5bafb in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) (newThreadContext=0x7ff75c674b90) at ../../Source/WTF/wtf/Threading.cpp:181
#30 0x00007ff818fedfb7 in WTF::wtfThreadEntryPoint(void*) (context=0x7ff75c674b90) at ../../Source/WTF/wtf/posix/ThreadingPOSIX.cpp:241
#31 0x00007ff8013954d2 in start_thread (arg=<optimized out>) at pthread_create.c:477
#32 0x00007ff80361f323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 3 Carlos Alberto Lopez Perez 2021-04-02 08:15:09 PDT
Created attachment 425022 [details]
full crash log with threads
Comment 4 Carlos Alberto Lopez Perez 2021-04-02 09:55:15 PDT
Updated expectations on r275423
Comment 5 Xabier Rodríguez Calvar 2021-04-07 08:09:39 PDT
I am seeing some other crash, but not the one reported here:

ASSERTION FAILED: doCapsHaveType(padCaps.get(), "video")
../../Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp(242) : void WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad(GstPad*)
1   0x7f89507f31f1 WTFCrash
2   0x7f8953e59ba1 /app/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0xc7aba1) [0x7f8953e59ba1]
3   0x7f89589209b2 /app/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x57419b2) [0x7f89589209b2]
4   0x7f8958920739 /app/webkit/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x5741739) [0x7f8958920739]
5   0x7f894c8fd61e g_cclosure_marshal_VOID__OBJECTv
6   0x7f894c8fa179 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x16179) [0x7f894c8fa179]
7   0x7f894c9137df g_signal_emit_valist
8   0x7f894c9139c3 g_signal_emit
9   0x7f894ba2e510 gst_element_add_pad
10  0x7f8908288663 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so(+0x25663) [0x7f8908288663]
11  0x7f8908288e6f /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so(+0x25e6f) [0x7f8908288e6f]
12  0x7f894ba4adbe /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x8bdbe) [0x7f894ba4adbe]
13  0x7f894c7f0466 g_hook_list_marshal
14  0x7f894ba4a4a9 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x8b4a9) [0x7f894ba4a4a9]
15  0x7f894ba4dcb5 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x8ecb5) [0x7f894ba4dcb5]
16  0x7f894ba4e248 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x8f248) [0x7f894ba4e248]
17  0x7f894ba4bb80 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x8cb80) [0x7f894ba4bb80]
18  0x7f894ba571d0 gst_pad_push_event
19  0x7f89080c2e08 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so(+0x34e08) [0x7f89080c2e08]
20  0x7f894ba86257 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0xc7257) [0x7f894ba86257]
21  0x7f894c82bea4 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x82ea4) [0x7f894c82bea4]
22  0x7f894c82b5a1 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x825a1) [0x7f894c82b5a1]
23  0x7f894c78f4d2 /usr/lib/x86_64-linux-gnu/libpthread.so.0(+0x84d2) [0x7f894c78f4d2]
24  0x7f894c27d323 clone
Comment 6 Xabier Rodríguez Calvar 2021-04-08 04:01:41 PDT
And after updating to ToT, I can't repro the crash, just timeouts.
Comment 7 Philippe Normand 2021-08-19 05:21:54 PDT
(In reply to Xabier Rodríguez Calvar from comment #6)
> And after updating to ToT, I can't repro the crash, just timeouts.

The crash reported in this bug was fixed by r275516. I'll update the expectations to [ Timeout Pass ].