[Live-devel] SIGABRT in version 2017.10.28: BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor

Ross Finlayson finlayson at live555.com
Sun Mar 25 00:40:33 PDT 2018


> We are using Live555 Proxyserver and RTSPClient (version: 2017.10.28)

Please upgrade to the latest version (currently, 2018.02.28) of the code.  We do not support old versions of the code.


> in our applications to get the rtsp stream from a camera.
> We are getting frequent SIGABRT crash.
> 
> Here is the Crash log:
> 
> BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor
[…..]
> When I checked the mailing list, you have mentioned that this issue had been solved.
> 
> Then what could be the reason we are getting this again?

Perhaps because we fixed this problem in our code, but not in your code :-)


>  What are the cases for the 'select()' function to be failed? 

This error occurs when you have been handling I/O events on a socket, but the socket gets closed, without first calling “turnOffBackgroundReadHandling()” (or equivalently, “disableBackgroundHandling()”) on the socket.  I think we now do this everywhere in our code, but perhaps you’re not doing it in yours.

I.e., perhaps you have an object somewhere in your code that encapsulates a socket, and you have called “turnOnBackgroundReadHandling()” (or equivalently, “setBackgroundHandling(…, SOCKET_READABLE)”) on it, in order to handle incoming data.  Perhaps your destructor is closing this socket, without first calling “turnOffBackgroundReadHandling()” (or equivalently, “disableBackgroundHandling()”) on it.


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




More information about the live-devel mailing list