Richard,
sure. That needs to be fixed. Matt has checked in a better solution
than the loop code. Actually, with Matts changes, all EAGAIN problems
should be fixed.
Q: do you see this behaviour with the current CVS code? That has the
fix since March 18th. If yes, Matt needs to know.
Cheers
Martin
--- [EMAIL PROTECTED] wrote:
> Matt/Martin and all.
>
> I am finding that I am still getting occassional truncated XML from
> gmond, even
> after the EAGAIN patches to gmond.c. Interestingly, when the data was
> truncated, it ended with a </HOST> tag. i.e. a host boundary.
>
> Looking at the code, I see this:
> <snip>
> /* Walk the host hash */
> for(hi = apr_hash_first(client_context, hosts);
> hi;
> hi = apr_hash_next(hi))
> {
> apr_hash_this(hi, NULL, NULL, &val);
> status = print_host_start(client, (Ganglia_host *)val);
> if(status != APR_SUCCESS)
> {
> goto close_accept_socket;
> }
> </snip>
>
> Ahh. This is another place that we need the EAGAIN retry loop.
> In fact to be safe, the print_xml_header code should also be
> protected.
>
> Do you guys agree with the analysis?
>
> My gmonds run on windows - for some reason windows/cygwin often gives
> me the EGAIN returns while the Linux daemons never seem to.
>
> regards,
> Richard
>
------------------------------------------------------
Martin Knoblauch
email: k n o b i AT knobisoft DOT de
www: http://www.knobisoft.de