From: Truong N. <nxt...@ya...> - 2015-09-03 16:35:21
|
Hello all, I've been using Yarp in C++ for quite some time, and it has been working very well. Recently, when I develop a rather large-scale system, with over 400 ports (almost 100 processes, each has between 2 and dozens Yarp ports), there is an issue with removing the ports when the programs exits. Typically, when a process ends, Yarp (the yarp::os::Network object) will remove all the ports opened by this process in its destructor. However, in my system, many processes fail to remove all of their ports when they end (some ports of a process can be removed but others can't). Specifically, the error I got from a process looked like this:yarp: Removing output from /powernet/user13_1/y to /powernet/bus13/Vfrom1 yarp: No connection to nameserver yarp: *** try running: yarp detect *** yarp: Removing input from /powernet/_smn_/user13_1 to /powernet/user13_1/_gc_ yarp: Removing output from /powernet/user13_1/_gc_ to /powernet/_smn_/_gc_ As you can see, this process opened 2 ports (/powernet/user13_1/_gc_ and /powernet/user13_1/y) but only the first could be removed. The second couldn't be removed because of "no connection to nameserver" (although I checked carefully and the connection seemed fine, no problem with Yarp configuration). This problem didn't happen with smaller scale systems I tried. The problem also seems to happen randomly, in the sense that the set of ports which couldn't be removed changed every time I tried. So I suspect the number of ports/connections may be too large for the Yarp nameserver to handle? How scalable is Yarp nameserver?P.S. I am using Yarp stable 2.3.64. Thank you.Truong |