From: Nicholas S. <nfs...@gm...> - 2012-09-28 12:15:59
|
Hi, The version in "APR instead of homegrown #49" is causing still causing corruption of the host name field on the server that I was having problems with before [1]. The current version in github is ... cb->msg.Ganglia_value_msg_u.gstr.metric_id.host = apr_pstrcat(gm_pool, (char *)( override_ip != NULL ? override_ip : override_hostname ), ":", (char *) override_hostname, NULL); I've slightly modified the above version to the following and it seems to work ok... override_ip = override_ip != NULL ? override_ip : override_hostname; cb->msg.Ganglia_value_msg_u.gstr.metric_id.host = apr_pstrcat(gm_pool, override_ip, ":", override_hostname, NULL); I assume there is some subtle difference between the two that someone on the developer list could explain to me. Do people think this would be robust enough to work is all cases? Regards, Nick [1] The HOST NAME tag was corrupted as follows... <HOST NAME="U\xc2\xa69" IP="" REPORTED="1348821943" TN="20" TMAX="20" DMAX="86400" LOCATION="unspecified" GMOND_STARTED="0" TAGS="os:Linux datacentre:dev virtual:physical"></HOST> On Thu, Sep 27, 2012 at 10:23 AM, Nicholas Satterly <nfs...@gm...>wrote: > Paul, thanks for that. However, I'd be more inclined to get the APR > version working as it should. > > Vladimir, were there specific bug reports for gmond crashing? Or any more > information to help us narrow down what the root cause may have been? > > --Nick. > > On Wed, Sep 26, 2012 at 9:20 AM, Paul Hewlett <Pau...@ar...>wrote: > >> Hi Nicholas**** >> >> ** ** >> >> The +1 should be +2 in the malloc() call – one for the terminating null >> and one for the ‘:’ character.**** >> >> ** ** >> >> Regards**** >> >> ** ** >> >> ** ** >> >> --**** >> >> Paul Hewlett X25250**** >> >> http://www.theregister.co.uk/2012/06/25/rbs_natwest_what_went_wrong/**** >> >> ARM Ltd**** >> >> 110 Fulbourn Road, Cambridge, CB1 9NJ**** >> >> Tel: +44 (0)1223 405923**** >> >> skype: paul-at-arm**** >> >> www.arm.com**** >> >> ** ** >> >> ** ** >> >> *From:* Nicholas Satterly [mailto:nfs...@gm...] >> *Sent:* 26 September 2012 00:49 >> *To:* gan...@li... >> *Subject:* [Ganglia-developers] override_ip causing gmond to crash**** >> >> ** ** >> >> Hi,**** >> >> ** ** >> >> I've discovered that on some of our systems (perhaps only half a dozen >> out of 500 or so) gmond crashes if the "override_ip" configuration option >> is set. I've worked out that the problem is something to do with this block >> of code...**** >> >> ** ** >> >> #if 1**** >> >> char* tmpstr = malloc( strlen(( override_ip != NULL ? >> override_ip : override_hostname )) + strlen( override_hostname ) + 1 );** >> ** >> >> strcpy (tmpstr, (char *)( override_ip != NULL ? >> override_ip : override_hostname ) );**** >> >> strcat (tmpstr, ":");**** >> >> strcat (tmpstr, (char *) override_hostname);**** >> >> ** ** >> >> cb->msg.Ganglia_value_msg_u.gstr.metric_id.host = tmpstr; >> **** >> >> #endif**** >> >> #if 0**** >> >> cb->msg.Ganglia_value_msg_u.gstr.metric_id.host = >> apr_pstrcat(gm_pool, (char *)( override_ip != NULL ? override_ip : >> override_hostname ), ":", (char *) override_hostname, NULL);**** >> >> #endif**** >> >> ** ** >> >> What I'm trying to understand at the moment is why the "apr_pstrcat" >> version is "#if 0" commented out when it seems to work OK during my testing. >> **** >> >> ** ** >> >> Thanks,**** >> >> Nick**** >> >> -- IMPORTANT NOTICE: The contents of this email and any attachments are >> confidential and may also be privileged. If you are not the intended >> recipient, please notify the sender immediately and do not disclose the >> contents to any other person, use it for any purpose, or store or copy the >> information in any medium. Thank you. >> > > |