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 669301 - xvimagesink: hang joining thread at state switch to NULL
xvimagesink: hang joining thread at state switch to NULL
Status: RESOLVED INVALID
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-02-03 11:56 UTC by Vincent Penquerc'h
Modified: 2015-04-07 11:17 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Vincent Penquerc'h 2012-02-03 11:56:58 UTC
Got this while trying to repro the crash from https://bugzilla.gnome.org/show_bug.cgi?id=434996.

Happened on a Matroska file after a dozen loops, but I doubt this is data dependant from the stack trace.

This was using the sample code from that bug:
http://bugzilla-attachments.gnome.org/attachment.cgi?id=87392


Thread 1 (Thread 0x7f865adaf700 (LWP 20558))

  • #0 pthread_join
    at pthread_join.c line 89
  • #1 g_system_thread_wait
    at gthread-posix.c line 1158
  • #2 g_thread_join
    at gthread.c line 966
  • #3 gst_xvimagesink_reset
    at xvimagesink.c line 3432
  • #4 gst_xvimagesink_change_state
    at xvimagesink.c line 2342
  • #5 gst_element_change_state
    at gstelement.c line 2761
  • #6 gst_element_set_state_func
    at gstelement.c line 2717
  • #7 gst_element_set_state
    at gstelement.c line 2618
  • #8 gst_bin_element_set_state
  • #9 gst_bin_change_state_func
    at gstbin.c line 2518
  • #10 gst_auto_video_sink_change_state
    at gstautovideosink.c line 387
  • #11 gst_element_change_state
    at gstelement.c line 2761
  • #12 gst_element_set_state_func
    at gstelement.c line 2717
  • #13 gst_element_set_state
    at gstelement.c line 2618
  • #14 gst_bin_element_set_state
    at gstbin.c line 2209
  • #15 gst_bin_change_state_func
    at gstbin.c line 2518
  • #16 gst_element_change_state
    at gstelement.c line 2761
  • #17 gst_element_set_state_func
    at gstelement.c line 2717
  • #18 gst_element_set_state
    at gstelement.c line 2618
  • #19 remove_sinks
    at gstplaybin.c line 1398
  • #20 gst_play_bin_change_state
    at gstplaybin.c line 1968
  • #21 gst_element_change_state
    at gstelement.c line 2761
  • #22 gst_element_set_state_func
    at gstelement.c line 2717
  • #23 gst_element_set_state
    at gstelement.c line 2618
  • #24 main

Comment 1 Vincent Penquerc'h 2012-02-03 12:11:19 UTC
xvimagesink->event_thread was set to NULL, running to FALSE, so it looks more like an X bug in fact as XGetWindowAttributes does not return, so we wait forever for the thread to join.

Another run shows no hang.
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2012-02-05 15:24:20 UTC
Is this reproducable still?
Comment 3 Vincent Penquerc'h 2012-02-05 16:06:48 UTC
Only seen once, further runs end normally.
Comment 4 Vincent Penquerc'h 2015-04-07 11:17:25 UTC
I don't recall seeing this ever again, so I'll close it.