Probably a good next step would be to instrument or trace the functions in rrd_client.c that deal directly with the daemon.  In the response() function, what do you see being sent and being received?<div><br></div><div>-kb<div>

<br><div><div><div class="gmail_quote">On Fri, Jul 30, 2010 at 1:42 AM, Peter Jenkins <span dir="ltr">&lt;<a href="mailto:peter.jenkins@csc.fi">peter.jenkins@csc.fi</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Your client is receiving the status message back from the first RRD (&quot;0 Successfully...&quot;).<br>
Then, for some reason, it&#39;s echoing this back to the server before the next command.<br>
You can see it on the read() for FD 6.<br>
<br>
    1401/19:       327      57     30 write(0x6, &quot;0 Successfully flushed<br>
/opt/rrd/ganglia/Management/shango/load_one.rrd.\n\0&quot;, 0x48)              = 72 0<br>
      1401/19:       394      29     12 read(0x6, &quot;0 Successfully flushed<br>
/opt/rrd/ganglia/Management/shango/load_one.rrd.\nflush<br>
/opt/rrd/ganglia/Management/shango/proc_run.rrd\na\320\0&quot;, 0x2000)     = 126 0<br>
      1401/19:       452      46     27 write(0x6, &quot;-1 Unknown command: 0\n\0&quot;, 0x16)                = 22 0<br>
<br>
Could you try tracing on your client to see if it&#39;s actually sending the results back to the server as a command?  Then we&#39;ll know which side to look on.<br>
</blockquote>
<br></div></div>
Great debuging idea. The client (rrdtool) is the problem:<br>
<br>
 19442/1: resolvepath(&quot;/opt/rrd/ganglia/Management/__SummaryInfo__/load_one.rrd\0&quot;, 0xFFBFBA90, 0x400)          = 56 0<br>
 19442/1:  fstat64(0x3, 0xFFBFB7F0, 0x1)                 = 0 0<br>
 19442/1:  brk(0x62918)          = 0 0<br>
 19442/1:  brk(0x64918)          = 0 0<br>
 19442/1:  fstat64(0x3, 0xFFBFB698, 0xD9D64)             = 0 0<br>
 19442/1:  ioctl(0x3, 0x5401, 0xFFBFB77C)                = -1 Err#22<br>
 19442/1:  write(0x3, &quot;flush /opt/rrd/ganglia/Management/__SummaryInfo__/load_one.rrd\n\0&quot;, 0x3F)     = 63 0<br>
 19442/1:  read(0x3, &quot;0 Successfully flushed /opt/rrd/ganglia/Management/__SummaryInfo__/load_one.rrd.\n\0&quot;, 0x2000)     = 81 0<br>
 19442/1:  open(&quot;/opt/rrd/ganglia/Management/__SummaryInfo__/load_one.rrd\0&quot;, 0x0, 0x1B6)                = 5 0<br>
 19442/1:  fstat(0x5, 0xFFBFCD08, 0x0)           = 0 0<br>
 19442/1:  mmap(0x0, 0x5C18, 0x1)                = -31850496 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x5C18, 0x4)              = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x78, 0x4)                = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x78, 0x4)                = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0xF0, 0x4)                = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x230, 0x4)               = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x8, 0x4)                 = 0 0<br>
 19442/1:  memcntl(0xFE1A0000, 0x5C18, 0x1)              = 0 0<br>
 19442/1:  munmap(0xFE1A0000, 0x5C18)            = 0 0<br>
 19442/1:  close(0x5)            = 0 0<br>
 19442/1: resolvepath(&quot;/opt/rrd/ganglia/Management/__SummaryInfo__/proc_run.rrd\0&quot;, 0xFFBFBA90, 0x400)          = 56 0<br>
 19442/1:  write(0x3, &quot;0 Successfully flushed /opt/rrd/ganglia/Management/__SummaryInfo__/load_one.rrd.\n\0&quot;, 0x51)    = 81 0<br>
 19442/1:  write(0x3, &quot;flush /opt/rrd/ganglia/Management/__SummaryInfo__/proc_run.rrd\n\0&quot;, 0x3F)     = 63 0<br>
 19442/1:  read(0x3, &quot;-1 Unknown command: 0\n/Management/__SummaryInfo__/proc_run.rrd\no__/load_one.rrd.\n\0&quot;, 0x2000)        = 22 0<br>
 19442/1:  fstat64(0x2, 0xFFBFE780, 0xFE5303BC)          = 0 0<br>
 19442/1:  write(0x2, &quot;ERROR: \0&quot;, 0x7)          = 7 0<br>
 19442/1:  write(0x2, &quot;rrdc_flush (/opt/rrd/ganglia/Management/__SummaryInfo__/proc_run.rrd) failed with status -1.\0&quot;, 0x5C)            = 92 0<br>
 19442/1:  write(0x2, &quot;\n\0&quot;, 0x1)               = 1 0<br>
<br>
I guess the bug is in rrd_client.c or rrd_graph.c, but I can&#39;t see why this would break on Solaris and not Linux.<br>
<br>
Anything else I can test?<br>
<br>
Many thanks,<br><font color="#888888">
Peter.<br>
</font></blockquote></div><br><br clear="all"><br>-- <br> kevin brintnall =~ /<a href="http://kbrint@rufus.net/">kbrint@rufus.net/</a><br><br>
</div></div></div></div>