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 729632 - rtspconnection: crashing sometimes when addinging a read source
rtspconnection: crashing sometimes when addinging a read source
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
unspecified
Other Linux
: Normal normal
: 1.3.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-06 09:25 UTC by Göran Jönsson
Modified: 2014-05-11 07:11 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gst-plugins-base patch (854 bytes, patch)
2014-05-06 09:25 UTC, Göran Jönsson
none Details | Review

Description Göran Jönsson 2014-05-06 09:25:31 UTC
Created attachment 275953 [details] [review]
gst-plugins-base patch

This when tunneling and drop-backlog parameter is FALSE.
This is related to tickets
https://bugzilla.gnome.org/show_bug.cgi?id=725898
, 
https://bugzilla.gnome.org/show_bug.cgi?id=728153
and
https://bugzilla.gnome.org/show_bug.cgi?id=728772

If trying to add a read source on write socket after
a call to gst_rtsp_connection_close it craches.

Adding patch with solution
reset_cont_stream.patch
Comment 1 Göran Jönsson 2014-05-06 12:25:25 UTC
This happens in gst_rtsp_source_dispatch_write.

  do {
    if (watch->write_data == NULL) {
      GstRTSPRec *rec;

      /* get a new message from the queue */
      rec = g_queue_pop_tail (watch->messages);
      if (rec == NULL) {
        if (watch->writesrc) {
          g_source_remove_child_source ((GSource *) watch, watch->writesrc);
          g_source_unref (watch->writesrc);
          watch->writesrc = NULL;
          /* we create and add the write source again when we actually have
           * something to write */

          /* since write source is now removed we add read source on the write
           * socket instead to be able to detect when client closes get channel
           * in tunneled mode */
          if (watch->conn->control_stream) {
==>         watch->controlsrc =
                g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM
                (watch->conn->control_stream), NULL);
Comment 2 Wim Taymans 2014-05-09 09:50:20 UTC
commit 446f9bf6bd8fbfc1fd42e60c7872027fac398509
Author: Göran Jönsson <goranjn@axis.com>
Date:   Tue May 6 11:12:19 2014 +0200

    rtspconnection: Reset control_stream.
    
    Reset control_stream when gst_rtsp_connection_close.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729632
Comment 3 Tim-Philipp Müller 2014-05-09 10:07:18 UTC
When fixing a crash, it would be great if the commit message summary, or at least the commit message body, mentioned that it fixes a crash and under what circumstances.