From: Douglas S. B. <db...@br...> - 2005-03-26 02:14:20
|
I'm working on getting camera data from Gazebo to a client. That works great, but I am getting a constant stream of "warning: bytes leftover" messages. I though that I might be doing something wrong, but I notice that the player/client_libs/libplayerc/test program gives the same: ./test --camera:0 host [localhost:6665] connecting ... ** Player [port 6665] client accepted from 127.0.0.1 on socket 6 ** pass selected devices [localhost:6665]: 0:camera:0 device [camera] index [0] subscribing (read) ... gz_iface.c:214 opening /tmp/gazebo-dblank-0/camera.camera1 050 921764 warning : 181428 bytes leftover on write() to client pass reading data (attempt 0) ... pass camera: [w 320 h 240 d 24] [230400/230400 bytes] reading data (attempt 1) ... warning : 99405 bytes leftover on write() to clientpass ... I can't seem to change the datamode or datafreq to get rid of these warnings. Before, I have gotten these type of warnings because I wasn't reading data fast enough (I think). Can someone shed light on why I'm getting these, and what I can do to get rid of them? Thanks! -Doug PS - I'm running the pioneer2at.world -- Douglas S. Blank, Assistant Professor db...@br..., (610)526-6501 Bryn Mawr College, Computer Science Program 101 North Merion Ave, Park Science Bld. Bryn Mawr, PA 19010 dangermouse.brynmawr.edu |
From: Brian G. <ge...@ai...> - 2005-03-31 17:13:50
|
Douglas S. Blank wrote: > I'm working on getting camera data from Gazebo to a client. That works > great, but I am getting a constant stream of "warning: bytes leftover" > messages. I though that I might be doing something wrong, but I notice > that the player/client_libs/libplayerc/test program gives the same: > > warning : 181428 bytes leftover on write() to client > I can't seem to change the datamode or datafreq to get rid of these > warnings. Before, I have gotten these type of warnings because I wasn't > reading data fast enough (I think). Can someone shed light on why I'm > getting these, and what I can do to get rid of them? Given that the TCP send and receive buffers are usually on the order of 64K, a write() of ten times that size (or more) is unlikely to succeed in one go. When player can't write() all the currently ready data for a client, you get that warning. You should still get the data, and the faster your client reads the better, up until the maximum server rate. For example, if it takes 10 writes to send an image and your client is getting data at 10Hz, it may take up to 1s to get the whole image. Clearly, this write loop is not well-tuned to handle large messages. But I'm not going to fix it. We're working on a server overhaul at the moment; I'll see what I can do to improve this behavior on that branch (to be joined to HEAD sometime later). brian. -- Brian P. Gerkey ge...@ai... Stanford AI Lab http://ai.stanford.edu/~gerkey |