[Live-devel] live555 blocked on a select

Jeremy Noring jnoring at logitech.com
Thu Feb 18 16:04:50 PST 2010


On Wed, Feb 17, 2010 at 7:57 AM, Sébastien Escudier <
sebastien-devel at celeos.eu> wrote:

>
> > If you can track this down some more, please let us know.
>
> Ok, so the client is blocked in RTSPClient.cpp -> getResponse1 line 2191 in
> a
> readsocket call.
>
> The comment in the file says :
>  // Keep reading data from the socket until we see "\r\n\r\n" (except
>  // at the start), or until we fill up our buffer.
>  // Don't read any more than this.
>
> and at this point the buffer (what has been read in the socket) is [1] (404
> not
> found, ending with \r\n)
> So obviously, it won't go any further, because the server won't send
> anything
> more, and live555 client is waiting for another \r\n
>
> This happens in some rare cases, and most of the time, the same answer (404
> not
> found with no \r\n\r\n at the end) is correctly received and handled by my
> live555 client.
>
> Do you have any idea what is wrong in this case ?
>

I reported the same issue a week or three back; I fixed it the same way you
did by adding timeouts to the various readSocket() calls in the RTSPClient
implementation.  Purportedly this code is undergoing a rewrite, so Ross
didn't merge my changes (which is fine by me).

I'm not sure how to reproduce the issue 100% of the time, but I know I
occasionally see a hang in these select() statements, and it's generally
when the RTSP server or internet connection hangs.  The timeout resolves the
problem.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20100218/07f9c926/attachment.html>


More information about the live-devel mailing list