After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 774854 - queue(2): validate: Deadlock when seeking on a dash stream
queue(2): validate: Deadlock when seeking on a dash stream
Status: RESOLVED DUPLICATE of bug 776039
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-11-22 18:37 UTC by Thibault Saunier
Modified: 2016-12-13 19:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
queue2: Unblock any ongoing serialize query when shuting down (1.93 KB, patch)
2016-11-22 18:48 UTC, Thibault Saunier
rejected Details | Review

Description Thibault Saunier 2016-11-22 18:37:57 UTC
Validate test: validate.dash.playback.seek_with_stop.dash_exMPD_BIP_TC1

Failure example: https://ci.gstreamer.net/job/GStreamer-master-meson-validate/lastCompletedBuild/testReport/validate.dash.playback/seek_with_stop/dash_exMPD_BIP_TC1/

Stack trace (from above link):

Thread 10 (Thread 0x7f6e8e7fc700 (LWP 7966))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 9 (Thread 0x7f6e8effd700 (LWP 7965))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 8 (Thread 0x7f6e8ffff700 (LWP 7963))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 7 (Thread 0x7f6ea9af3700 (LWP 7960))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 6 (Thread 0x7f6eaa2f4700 (LWP 7959))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 5 (Thread 0x7f6eab1c0700 (LWP 7958))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 4 (Thread 0x7f6eabfff700 (LWP 7957))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 319
  • #3 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #4 0x00007f6ebad48ace in
  • #5 0x00007f6ebad480d5 in
  • #6 start_thread
  • #7 clone

Thread 3 (Thread 0x7f6eb3f23700 (LWP 7956))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_queue2_handle_sink_query
    at ../subprojects/gstreamer/plugins/elements/gstqueue2.c line 2645
  • #3 gst_validate_pad_monitor_query_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2228
  • #4 gst_pad_query
    at ../subprojects/gstreamer/gst/gstpad.c line 3951
  • #5 gst_pad_peer_query
    at ../subprojects/gstreamer/gst/gstpad.c line 4083
  • #6 gst_base_src_prepare_allocation
    at ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c line 3140
  • #7 gst_base_src_negotiate
    at ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c line 3284
  • #8 gst_base_src_loop
    at ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c line 2703
  • #9 gst_task_func
    at ../subprojects/gstreamer/gst/gsttask.c line 334
  • #10 default_func
    at ../subprojects/gstreamer/gst/gsttaskpool.c line 68
  • #11 0x00007f6ebad48ace in
  • #12 0x00007f6ebad480d5 in
  • #13 start_thread
  • #14 clone

Thread 1 (Thread 0x7f6ebb78c780 (LWP 7953))

  • #0 __lll_lock_wait
  • #1 pthread_mutex_lock
  • #2 gst_queue2_sink_activate_mode
    at ../subprojects/gstreamer/plugins/elements/gstqueue2.c line 3465
  • #3 gst_validate_pad_monitor_activatemode_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2292
  • #4 activate_mode_internal
    at ../subprojects/gstreamer/gst/gstpad.c line 1178
  • #5 gst_pad_set_active
    at ../subprojects/gstreamer/gst/gstpad.c line 1079
  • #6 activate_pads
    at ../subprojects/gstreamer/gst/gstelement.c line 2825
  • #7 gst_iterator_fold
    at ../subprojects/gstreamer/gst/gstiterator.c line 616
  • #8 iterator_activate_fold_with_resync
    at ../subprojects/gstreamer/gst/gstelement.c line 2849
  • #9 gst_element_pads_activate
    at ../subprojects/gstreamer/gst/gstelement.c line 2893
  • #10 gst_element_change_state_func
    at ../subprojects/gstreamer/gst/gstelement.c line 2959
  • #11 gst_queue2_change_state
    at ../subprojects/gstreamer/plugins/elements/gstqueue2.c line 3631
  • #12 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2737
  • #13 gst_element_set_state_func
    at ../subprojects/gstreamer/gst/gstelement.c line 2691
  • #14 gst_element_set_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2592
  • #15 gst_bin_element_set_state
    at ../subprojects/gstreamer/gst/gstbin.c line 2613
  • #16 gst_bin_change_state_func
    at ../subprojects/gstreamer/gst/gstbin.c line 2955
  • #17 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2737
  • #18 gst_element_continue_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2445
  • #19 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2776
  • #20 gst_element_set_state_func
    at ../subprojects/gstreamer/gst/gstelement.c line 2691
  • #21 gst_element_set_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2592
  • #22 gst_adaptive_demux_stop_tasks
    at ../subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/gstadaptivedemux.c line 1789
  • #23 gst_adaptive_demux_handle_seek_event
    at ../subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/gstadaptivedemux.c line 1407
  • #24 gst_adaptive_demux_src_event
    at ../subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/gstadaptivedemux.c line 1566
  • #25 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #26 gst_pad_send_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5779
  • #27 gst_bin_send_event
    at ../subprojects/gstreamer/gst/gstbin.c line 3201
  • #28 gst_element_send_event
    at ../subprojects/gstreamer/gst/gstelement.c line 1644
  • #29 gst_decode_pad_event
    at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c line 5020
  • #30 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #31 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #32 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #33 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #34 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #35 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #36 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #37 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #38 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #39 gst_input_selector_event
    at ../subprojects/gstreamer/plugins/elements/gstinputselector.c line 1551
  • #40 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #41 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #42 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #43 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #44 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #45 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #46 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #47 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #48 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #49 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #50 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #51 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #52 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #53 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #54 gst_stream_synchronizer_src_event
    at ../subprojects/gst-plugins-base/gst/playback/gststreamsynchronizer.c line 203
  • #55 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #56 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #57 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #58 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #59 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #60 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #61 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #62 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #63 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #64 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #65 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #66 gst_base_transform_src_eventfunc
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2019
  • #67 gst_base_transform_src_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 1986
  • #68 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #69 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #70 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #71 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #72 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #73 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #74 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #75 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #76 gst_deinterlace_src_event
    at ../subprojects/gst-plugins-good/gst/deinterlace/gstdeinterlace.c line 3051
  • #77 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #78 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #79 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #80 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #81 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #82 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #83 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #84 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #85 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #86 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #87 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #88 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #89 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #90 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #91 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #92 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #93 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #94 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #95 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #96 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #97 gst_queue_handle_src_event
    at ../subprojects/gstreamer/plugins/elements/gstqueue.c line 1567
  • #98 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #99 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #100 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #101 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #102 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #103 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #104 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #105 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #106 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #107 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #108 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #109 gst_base_transform_src_eventfunc
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2019
  • #110 gst_base_transform_src_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 1986
  • #111 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #112 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #113 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #114 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #115 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #116 gst_base_transform_src_eventfunc
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2019
  • #117 gst_video_scale_src_event
    at ../subprojects/gst-plugins-base/gst/videoscale/gstvideoscale.c line 1123
  • #118 gst_base_transform_src_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 1986
  • #119 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #120 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #121 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #122 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #123 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #124 gst_base_transform_src_eventfunc
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2019
  • #125 gst_base_transform_src_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 1986
  • #126 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #127 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #128 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #129 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #130 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #131 gst_base_transform_src_eventfunc
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 2019
  • #132 gst_base_transform_src_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c line 1986
  • #133 gst_validate_pad_monitor_src_event_check
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 1953
  • #134 gst_validate_pad_monitor_src_event_func
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c line 2213
  • #135 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #136 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #137 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #138 event_forward_func
    at ../subprojects/gstreamer/gst/gstpad.c line 2994
  • #139 gst_pad_forward
    at ../subprojects/gstreamer/gst/gstpad.c line 2948
  • #140 gst_pad_event_default
    at ../subprojects/gstreamer/gst/gstpad.c line 3045
  • #141 gst_pad_send_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5609
  • #142 gst_pad_push_event_unchecked
    at ../subprojects/gstreamer/gst/gstpad.c line 5265
  • #143 gst_pad_push_event
    at ../subprojects/gstreamer/gst/gstpad.c line 5402
  • #144 gst_base_sink_send_event
    at ../subprojects/gstreamer/libs/gst/base/gstbasesink.c line 4503
  • #145 gst_element_send_event
    at ../subprojects/gstreamer/gst/gstelement.c line 1644
  • #146 gst_bin_send_event
    at ../subprojects/gstreamer/gst/gstbin.c line 3160
  • #147 gst_element_send_event
    at ../subprojects/gstreamer/gst/gstelement.c line 1644
  • #148 gst_play_sink_send_event_to_sink
    at ../subprojects/gst-plugins-base/gst/playback/gstplaysink.c line 4746
  • #149 gst_play_sink_send_event
    at ../subprojects/gst-plugins-base/gst/playback/gstplaysink.c line 4790
  • #150 gst_element_send_event
    at ../subprojects/gstreamer/gst/gstelement.c line 1644
  • #151 gst_play_bin_send_event
    at ../subprojects/gst-plugins-base/gst/playback/gstplaybin2.c line 4302
  • #152 gst_element_send_event
    at ../subprojects/gstreamer/gst/gstelement.c line 1644
  • #153 gst_validate_scenario_execute_seek
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c line 577
  • #154 _execute_seek
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c line 630
  • #155 gst_validate_execute_action
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c line 1503
  • #156 execute_next_action
    at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c line 1813
  • #157 0x00007f6ebad20eb3 in
  • #158 g_main_context_dispatch
  • #159 0x00007f6ebad207f0 in
  • #160 g_main_loop_run
  • #161 main
    at ../subprojects/gst-devtools/validate/tools/gst-validate.c line 494

Basically problem is as follow:

 * T1. Validate scenario is seeking
    -> dashdemux reset it the internal src bin (which contains a queue2) state to READY
    -> GstElement deactivate the queue2 src pad, bringing down the queue src pad task in gst_queue2_src_activate_push
        (From what I can say, right after the task is paused, we get to T3 action)
    -> GstElement deactivate the queue2 sink pad trying to get the sinkpad STREAM_LOCK

 * T3. Waiting for a ALLOCATION query to be processed but there is no srcpad thread anymore to process it
Comment 1 Thibault Saunier 2016-11-22 18:48:09 UTC
Created attachment 340549 [details] [review]
queue2: Unblock any ongoing serialize query when shuting down

In case we have a serialize query happening when going from PAUSED
to READY after the srcpad task was stop and the moment we deactivate
the sinkpad, we need to make sure we wake up the stuck sinkpad streaming
thread to be able to get the sinkpad stream lock.
Comment 2 Thibault Saunier 2016-11-22 18:59:10 UTC
Working on a GstHarness test.
Comment 3 Thibault Saunier 2016-11-23 14:30:40 UTC
Comment on attachment 340549 [details] [review]
queue2: Unblock any ongoing serialize query when shuting down

Trying hard to reproduce the race I was understanding let me notic that this  case is not possible because we properly set sinkresult to FLUSHING when deactivating the source pad.
Comment 4 Thibault Saunier 2016-11-28 17:48:16 UTC
Btw, this same issue happens with validate.dash.playback.seek_forward.dash_exMPD_BIP_TC1:

https://ci.gstreamer.net/job/GStreamer-master-validate/4048/testReport/junit/validate.dash.playback/seek_forward/dash_exMPD_BIP_TC1/
Comment 5 Thibault Saunier 2016-11-28 20:13:26 UTC
Interestingly, a very similare issue seems to happen on queue itself:

https://ci.gstreamer.net/job/GStreamer-master-validate/4053/testReport/junit/validate.http/media_check/vorbis_theora_1_ogg/

[New LWP 14823]
[New LWP 14822]
[New LWP 14821]
[New LWP 14816]
[New LWP 14814]
[New LWP 14813]
[New LWP 14810]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007f6358d928ad in __lll_lock_wait () from /lib64/libpthread.so.0

Thread 7 (Thread 0x7f6339c1d700 (LWP 14813))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at gsttask.c line 319
  • #3 default_func
    at gsttaskpool.c line 68
  • #4 g_thread_pool_thread_proxy
  • #5 g_thread_proxy
  • #6 start_thread
  • #7 clone

Thread 6 (Thread 0x7f6339202700 (LWP 14814))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at gsttask.c line 319
  • #3 default_func
    at gsttaskpool.c line 68
  • #4 g_thread_pool_thread_proxy
  • #5 g_thread_proxy
  • #6 start_thread
  • #7 clone

Thread 5 (Thread 0x7f6333fff700 (LWP 14816))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_ogg_demux_loop_push
    at gstoggdemux.c line 4891
  • #3 g_thread_proxy
  • #4 start_thread
  • #5 clone

Thread 4 (Thread 0x7f63337fe700 (LWP 14821))

  • #0 syscall
  • #1 g_cond_wait
  • #2 _gst_data_queue_wait_non_empty
    at gstdataqueue.c line 553
  • #3 gst_data_queue_pop
    at gstdataqueue.c line 595
  • #4 gst_multi_queue_loop
    at gstmultiqueue.c line 1769
  • #5 gst_task_func
    at gsttask.c line 334
  • #6 default_func
    at gsttaskpool.c line 68
  • #7 g_thread_pool_thread_proxy
  • #8 g_thread_proxy
  • #9 start_thread
  • #10 clone

Thread 3 (Thread 0x7f6332ba3700 (LWP 14822))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_queue_handle_sink_query
    at gstqueue.c line 1048
  • #3 gst_pad_query
    at gstpad.c line 3951
  • #4 gst_pad_peer_query
    at gstpad.c line 4083
  • #5 query_forward_func
    at gstpad.c line 3319
  • #6 gst_pad_forward
    at gstpad.c line 2948
  • #7 gst_pad_query_default
    at gstpad.c line 3386
  • #8 gst_pad_query
    at gstpad.c line 3951
  • #9 gst_pad_peer_query
    at gstpad.c line 4083
  • #10 query_forward_func
    at gstpad.c line 3319
  • #11 gst_pad_forward
    at gstpad.c line 2948
  • #12 gst_pad_query_default
    at gstpad.c line 3386
  • #13 gst_decode_pad_query
    at gstdecodebin2.c line 5058
  • #14 gst_pad_query
    at gstpad.c line 3951
  • #15 gst_pad_peer_query
    at gstpad.c line 4083
  • #16 gst_audio_decoder_negotiate_default
    at gstaudiodecoder.c line 687
  • #17 gst_audio_decoder_negotiate_unlocked
    at gstaudiodecoder.c line 737
  • #18 gst_audio_decoder_allocate_output_buffer
    at gstaudiodecoder.c line 3561
  • #19 vorbis_handle_data_packet
    at gstvorbisdec.c line 482
  • #20 vorbis_dec_handle_frame
    at gstvorbisdec.c line 599
  • #21 gst_audio_decoder_handle_frame
    at gstaudiodecoder.c line 1468
  • #22 gst_audio_decoder_push_buffers
    at gstaudiodecoder.c line 1566
  • #23 gst_audio_decoder_chain_forward
    at gstaudiodecoder.c line 1680
  • #24 gst_audio_decoder_chain
    at gstaudiodecoder.c line 1940
  • #25 gst_pad_chain_data_unchecked
    at gstpad.c line 4206
  • #26 gst_pad_push_data
    at gstpad.c line 4458
  • #27 gst_pad_push
    at gstpad.c line 4577
  • #28 gst_single_queue_push_one
    at gstmultiqueue.c line 1611
  • #29 gst_multi_queue_loop
    at gstmultiqueue.c line 1923
  • #30 gst_task_func
    at gsttask.c line 334
  • #31 default_func
    at gsttaskpool.c line 68
  • #32 g_thread_pool_thread_proxy
  • #33 g_thread_proxy
  • #34 start_thread
  • #35 clone

Thread 2 (Thread 0x7f6331cbc700 (LWP 14823))

  • #0 syscall
  • #1 g_cond_wait
  • #2 gst_task_func
    at gsttask.c line 319
  • #3 default_func
    at gsttaskpool.c line 68
  • #4 g_thread_pool_thread_proxy
  • #5 g_thread_proxy
  • #6 start_thread
  • #7 clone

Thread 1 (Thread 0x7f635a807800 (LWP 14808))

  • #0 __lll_lock_wait
  • #1 pthread_mutex_lock
  • #2 gst_queue_sink_activate_mode
    at gstqueue.c line 1687
  • #3 activate_mode_internal
    at gstpad.c line 1178
  • #4 gst_pad_set_active
    at gstpad.c line 1079
  • #5 activate_pads
    at gstelement.c line 2825
  • #6 gst_iterator_fold
    at gstiterator.c line 616
  • #7 iterator_activate_fold_with_resync
    at gstelement.c line 2849
  • #8 gst_element_pads_activate
    at gstelement.c line 2893
  • #9 gst_element_change_state_func
    at gstelement.c line 2959
  • #10 gst_element_change_state
    at gstelement.c line 2737
  • #11 gst_element_set_state_func
    at gstelement.c line 2691
  • #12 gst_element_set_state
    at gstelement.c line 2592
  • #13 gst_bin_element_set_state
    at gstbin.c line 2613
  • #14 gst_bin_change_state_func
    at gstbin.c line 2955
  • #15 gst_pipeline_change_state
    at gstpipeline.c line 499
  • #16 gst_element_change_state
    at gstelement.c line 2737
  • #17 gst_element_set_state_func
    at gstelement.c line 2691
  • #18 gst_element_set_state
    at gstelement.c line 2592
  • #19 discoverer_cleanup
    at gstdiscoverer.c line 1531
  • #20 gst_discoverer_discover_uri
    at gstdiscoverer.c line 2148
  • #21 gst_validate_media_descriptor_writer_new_discover
    at media-descriptor-writer.c line 586
  • #22 main
    at gst-validate-media-check.c line 119

Comment 7 Thibault Saunier 2016-12-13 19:42:44 UTC

*** This bug has been marked as a duplicate of bug 776039 ***