Guess what? As luck would have it I just happened to stumble into some Solaris hosts with CPU cards mounted in not-zero slots. Gmond core dumped so I applied your fix and everything is OK. Thanks to Michael, Martin, Robert and anyone else who has made recent improvements to solaris.c . Our organization still depends largely on Sun hardware to power our servers.
---- Yemi > -----Original Message----- > From: Michael Hom [mailto:[EMAIL PROTECTED] > Sent: Saturday, April 03, 2004 8:09 AM > To: [EMAIL PROTECTED] > Cc: ganglia-developers@lists.sourceforge.net; [EMAIL PROTECTED] > Subject: Re: [Ganglia-developers] 2.6.0 -Solaris kstat cpu_info > > > Martin, > > Here's the "diff -u " output of the original solaris.c and my > updated solaris.c. This is an odd scenario, but it could > come up in certain environments (....like mine). > > Thanks. > -Mike > > --- ../2.6.0_0322/ganglia-2.6.0/gmond/machines/solaris.c > Mon Feb 23 18:27:17 2004 > +++ ./machine.c.final Fri Apr 2 12:28:30 2004 > @@ -1,7 +1,7 @@ > #include "lib/interface.h" > #include "lib/ganglia.h" > #include "metric_typedefs.h" > -#include "debug_msg.h" > +#include "lib/debug_msg.h" > > /* This is file is an amended version of solaris.c included > in ganglia 2.5.4 > * and ganglia 2.5.5. It has been modified by Adeyemi > Adesanya @@ -227,6 +227,27 @@ > debug_msg( "%s: kc is %p", name, kc); > ks = kstat_lookup(kc, km_name, 0, ks_name); > debug_msg("%s: Just did kstat_lookup().",name); > + > + /* CPU_INFO module & instance check > + * If the first online CPU is not in slot #0, gmond will > segfault and core dump. > + * If ks == NULL, then traverse the cpu instance #'s > until the first online cpu is found. > + * After the traversal, if ks == NULL, then something is > very wrong with the cpu configuration. > + */ > + if ((km_name == "cpu_info") && (ks == NULL)) { > + int instance_num = 1; > + int num_tries = 0; > + while ((num_tries < (int)metriclist.cpu_num.uint32) > && (ks == NULL)) { > + char *new_ks_name = (char *)malloc(20*sizeof(char)); > + sprintf(new_ks_name, "cpu_info%d", instance_num); > + debug_msg( "Lookup up kstat: km (unix?)='%s', > ks (system_misc?)='%s',kn (resulting metric?)='%s'", km_name, > new_ks_name, name); > + ks = kstat_lookup(kc, km_name, instance_num, > new_ks_name); > + debug_msg("%s: Just did kstat_lookup().\n",new_ks_name); > + ++instance_num; > + ++num_tries; > + free(new_ks_name); > + } > + } > + > if (ks == NULL) > { > perror("ks"); > > > > > > > > Martin Knoblauch > > <[EMAIL PROTECTED] To: > Michael Hom/NewYork/DBNA/[EMAIL PROTECTED] > > de> cc: > [EMAIL PROTECTED], ganglia-developers@lists.sourceforge.net > > Subject: Re: > [Ganglia-developers] 2.6.0 -Solaris kstat cpu_info > 04/03/2004 02:41 > > AM > > Please respond to > > knobi > > > > > > > > > > Michael, > > could you please post a "diff -u" style patch, so that I can > apply it automatically (alternatively just send me your > version of solaris.c). > > Robert: could you have a look at the change for sanity/correctness? > Apparently your previous fix did not take into account the > case that CPU #0 is missing. Unfortunatelly I have no box to > test those cases out. > > Cheers > Martin > > > ===== > ------------------------------------------------------ > Martin Knoblauch > email: k n o b i AT knobisoft DOT de > www: http://www.knobisoft.de > > > > > > -- > > This e-mail may contain confidential and/or privileged > information. If you are not the intended recipient (or have > received this e-mail in error) please notify the sender > immediately and destroy this e-mail. Any unauthorized > copying, disclosure or distribution of the material in this > e-mail is strictly forbidden. > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials Free > Linux tutorial presented by Daniel Robbins, President and CEO > of GenToo technologies. Learn everything from fundamentals to > system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Ganglia-developers mailing list > Ganglia-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ganglia-developers >