[Live-devel] live555MediaServer segmentation violation when severals RTSP client access to the same stream.

PROMONET Michel michel.promonet at thalesgroup.com
Thu Oct 16 06:30:11 PDT 2014


            Hi Ross,

Since a couple of months live555MediaServer exit times to times with a segmentation violation when it is used by several client that ask for the same file.
One of the back trace is :
#0  ServerMediaSession::duration (this=0x131a500) at ServerMediaSession.cpp:177
#1  0x0000000000412615 in ServerMediaSession::generateSDPDescription (this=0x131a500) at ServerMediaSession.cpp:243
#2  0x00000000004074f6 in RTSPServer::RTSPClientConnection::handleCmd_DESCRIBE (this=0x130c460,
    urlPreSuffix=<value optimized out>, urlSuffix=<value optimized out>,
    fullRequestStr=0x130c48c "DESCRIBE rtsp://127.0.0.1:8554/video.264 RTSP/1.0\r\nCSeq: 3\r\nUser-Agent: RTSP client (LIVE555 Streaming Media v2013.02.11)\r\nAccept: application/sdp\r\n\r\n") at RTSPServer.cpp:526
#3  0x0000000000405a30 in RTSPServer::RTSPClientConnection::handleRequestBytes (this=0x130c460, newBytesRead=150)
    at RTSPServer.cpp:990
#4  0x00000000004063c0 in RTSPServer::RTSPClientConnection::incomingRequestHandler1 (this=<value optimized out>)
    at RTSPServer.cpp:790
#5  0x00000000004063cf in RTSPServer::RTSPClientConnection::incomingRequestHandler (instance=<value optimized out>)
    at RTSPServer.cpp:783
#6  0x000000000044a762 in BasicTaskScheduler::SingleStep (this=0x1199010, maxDelayTime=<value optimized out>)
    at BasicTaskScheduler.cpp:171
#7  0x000000000044b8d5 in BasicTaskScheduler0::doEventLoop (this=0x1199010, watchVariable=0x0) at BasicTaskScheduler0.cpp:80
#8  0x00000000004020bb in main (argc=<value optimized out>, argv=<value optimized out>) at live555MediaServer.cpp:89
Others are similars accessing to a ServerMediaSession, sometimes processing SETUP.

I tried to comment out in DynamicRTSPServer.cpp removing of existing sessions (because I suspect it destroy ServerMediaSession that are still used by others RTSP connections)
  } else {
    if (smsExists && isFirstLookupInSession) {
      // Remove the existing "ServerMediaSession" and create a new one, in case the underlying
      // file has changed in some way:
//      removeServerMediaSession(sms);
//      sms = NULL;
    }

    if (sms == NULL) {
      sms = createNewSMS(envir(), streamName, fid);
      addServerMediaSession(sms);
    }

    fclose(fid);
    return sms;
  }

Obviously this change the behavior because it does not re-read the file, but with this modification it doesnot seems to crash anymore.

Is there some restrictions to access several times to the same stream provided by live555MediaServer ?

Thanks again for your support.

            Michel.

[@@ THALES GROUP INTERNAL @@]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20141016/6ac7a712/attachment-0001.html>


More information about the live-devel mailing list