[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