Error from roscpp: Unable to modify FD epoll: No such file or directory
I am working with a real-time Orocos controller using rtt-ros-integration 2.9 on ROS Kinetic Ubuntu 16.04. Using the Orocos deployer I am able to load and start the controller component, but then I will launch another launch file that starts several nodes, and I will occasionally (happens often but not everytime) see the error in the title. I tracked it down in the logs and found
1529463944.138263450 ERROR [/tmp/binarydeb/ros-kinetic-roscpp-1.12.13/src/libros/io.cpp:154(set_events_on_socket) [topics: /rosout, /lbr4/joint_states, /lbr4/pose, /lbr4/twist, /lbr4/wrench, /diagnostics_agg] Unable to modify FD epoll: No such file or directory
And I see that error 4 times in a row usually, possibly because there are 4 of my topics involved (the /lbr4
ones). Those topics are being streamed from an Orocos component through the rtt-ros-integration. The log tells me exactly where in the roscpp source the error is being thrown, but I can't for the life of me figure out what the root cause is. I also see similar errors when I exit the Orocos deployer, saying it is unable to remove FD to epoll.
Possibly relevant is that I have two different computers involved, one is only running the Orocos controller and hardware drivers, while the other computer is the ROS master and runs roscore and the secondary launch file I launch. So my process is
- Start roscore on Machine 1.
- Start Orocos deployer and load and start controller on Machine 2 (who's ROS_MASTER_URI is set to Machine 1 and is connected through a direct tether).
- Launch other nodes on Machine 1 (this is where I see ROS epoll error on Machine 2).
Any help on this would be greatly appreciated, I don't have much knowledge about file descriptors and epoll so I don't know how to start debugging this. Thanks!