[Live-devel] Stack Overflow in FD_SET()

Ross Finlayson finlayson at live555.com
Tue Aug 3 09:13:52 PDT 2021



> On Aug 3, 2021, at 8:34 AM, Ross Finlayson <finlayson at live555.com> wrote:
> 
> I am also puzzled by your description of the error as a ‘stack overflow’,  because the server should handle concurrent requests - even requests for the same file - as separate, sequential events within the event loop (“BasicTaskScheduler”, in this case).  So I don’t see where any excessive recursion (causing a stack overflow) could be happening.  It is true that operating systems place limits on the number of open files, and that this may cause the server to stop responding after receiving a large number of concurrent requests - but this should not be causing a stack overflow.

Answering my own question here: I can see now where the code - when reading MP3 files - tries to do synchronous reads, and can make another call to “doEventLoop()” (within “waitUntilSocketIsReadable()”) if the input socket is not readable.  So this is where a stack overflow might occur.

I will shortly be releasing a new version of the code that fixes the server handling of MP3 files to do proper asynchronous file reads, as is already done when handling other file types.

Thanks again for the report.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




More information about the live-devel mailing list