The scenario is that node1 sends a ReadyMessage to node2 telling it
that it is ready for the next image/depth pair. node2 sends an image
and depth map to node3 (depth_to_cloud) to constuct a PointCloud from
the depth map to pass back along to node1. The problem seems to be
that the chain of messages gets broken at depth_to_cloud. Below is a
sample of the debug output I'm seeing from depth_to_cloud. This output
continues indefinitely until I kill the depth_to_cloud process. Am I
right to believe that this output explains the behavior I am seeing?
If so, what can I do about it?

Is node2 still up at this point?  The only reason the depth_to_cloud node should be retrying those connections is if it died at some point, or if its connection got killed in some other way.

You mentioned you're running against latest -- there have been some bugs fixed with the retry logic recently that only went out to cturtle.  You may want to try switching over.
 

Also, I think this output may be responsible for the respawning of
rosout. rosout uses quite a lot of memory during these connection
failure messages. Could it perhaps be trying to store all of these in
memory in addition to in the log files and eventually running out of
memory?

Those roscpp_internal log messages don't get sent to rosout unless you've enabled DEBUG output in general -- is the rest of your system sending a lot of messages to rosout?

Josh