Resource temporarily unavailable, number : 11
We are testing the realsense on our robot and we are using ROS. At certain points, we change the exposure of the stereo camera periodically. Whenever we do that, the following error message is spammed:
Resource temporarily unavailable, number : 11
There isn't a dramatic issue involved in this (because the camera works fine also in these moments) but our logs are spammed full with it and I would very much like to suppress this message. I also checked htop to see if there are any issues regarding the CPU workload but it doesn't come close to being fully utilized.
Is there a way to suppress this message without just muting the whole node (as we require certain messages to be displayed)
-
Hi Roman Leuzinger Typically in this situation, defining a logging level to exclude certain categories of messages from the log will be the solution. The 'Resource temporarily available' message is a WARNING category of message.
https://github.com/IntelRealSense/librealsense/wiki/Troubleshooting-Q%26A
Log levels can be DEBUG, INFO, WARNING, ERROR or FATAL. For example:
export LRS_LOG_LEVEL=Debug
-
One way to mute that message specifically may be to remove the 'if' check for all types of control_transfer returned warnings by commenting line 42 of the source code of the SDK file messenger-libusb.cpp at the link below and then build that modified SDK from source code. The Resource temporarily unavailable warning should then not be printed, as it is a control_transfer returned warning type, whilst other WARNING messages that are not of the control_transfer returned type are still printed.
https://github.com/IntelRealSense/librealsense/blob/master/src/libusb/messenger-libusb.cpp#L42
Are you building librealsense from source code using the RSUSB Backend installation method? If so then an RSUSB build of the SDK can take longer than a kernel-patched build to respond to option changes, as described here:
https://github.com/IntelRealSense/librealsense/issues/10188#issuecomment-1023153338
-
You can try redirecting the error message to /dev/null to suppress it without muting the entire node. This will discard the output and prevent it from being recorded. You can do this by modifying the node launch command and adding "2>/dev/null" to the end. This will redirect the standard error stream to the/dev/null/time card calculator, effectively suppressing the error message.
-
Thanks so much Johnsmt795 for sharing your solution with Roman!
-
Thank you Johnsmt795 and MartyG for the help. I will try redirecting the error message.
-
I really have to admit that Drift Hunters https://drift-hunters2.co is one of the best racing games I've ever come across. Its graphics are truly stunning and vibrant, creating a truly engaging playing environment.
-
For me, the problem was due to ipV6 packets arriving on a UDP socket bound to a particular port. slope game
-
Drift Boss best 3D level based racing game on PC. https://drift-boss.pro
-
Hi Westclyde644 I believe that your only option for suppressing that one specific message type would be a suggestion from earlier in this discussion to edit line 42 of the librealsense source code file messenger-libusb.cpp to comment out that line so that the message is not printed and then build librealsense from the modified source code.
https://support.intelrealsense.com/hc/en-us/community/posts/16370745805971/comments/16439543355539
-
Editing line 42 in
messenger-libusb.cppsounds like a reasonable workaround. I’ll give rebuilding from the modified source a try.https://support.intelrealsense.com/hc/en-us/community/posts/16370745805971/comments/16439543355539gunspin
Please sign in to leave a comment.
Comments
13 comments