Tim,

 your diff command looks a bit surprising to me. The revision number
looks like CVS to me and we are SVN since quite some time.

 Which version of Ganglia have you checked out?

Cheers
Martin
--- "Witham, Timothy D" <[EMAIL PROTECTED]> wrote:

> Hi,
> 
> I just had a situation where the first host in a gmetad data_source
> accepts the connection but offers no data, like this:
> 
>   poll() timeout for [clustername] data source after 0 bytes read
> 
> Gmetad always tries the sources in order and so it just keeps getting
> stuck on this first one, and losing the data for the entire cluster.
> 
> Here is a quick patch that tries random hosts from the list instead,
> and solved my problem.  It is not careful to make sure it tried them
> all, but if it fails it will just try again next time.  If someone
> wants to fix it to try all the sources in a random order, that would
> be fine.  Perhaps this could be included in the next release unless
> someone knows a good reason to always try the sources in order.
> 
> Thanks!
> 
> -8<---------------------------------------------------------
> diff -c -r1.1.1.1 data_thread.c
> *** data_thread.c     19 Mar 2007 18:52:32 -0000      1.1.1.1
> --- data_thread.c     28 Mar 2007 18:12:08 -0000
> ***************
> *** 18,24 ****
>   void *
>   data_thread ( void *arg )
>   {
> !    int i, sleep_time, bytes_read, rval;
>      data_source_list_t *d = (data_source_list_t *)arg;
>      g_inet_addr *addr;
>      g_tcp_socket *sock=0;
> --- 18,24 ----
>   void *
>   data_thread ( void *arg )
>   {
> !    int i, j, sleep_time, bytes_read, rval;
>      data_source_list_t *d = (data_source_list_t *)arg;
>      g_inet_addr *addr;
>      g_tcp_socket *sock=0;
> ***************
> *** 60,75 ****
>        if(d->last_good_index >= 0)
>          sock = g_tcp_socket_new ( d->sources[d->last_good_index] );
>   
> !      /* If there was no good connection last time or the above
> connect failed then try each host in the list. */
>        if(!sock)
>              {
> !              for(i=0; i < d->num_sources; i++)
>                  {
> !                  /* Find first viable source in list. */
> !                  sock = g_tcp_socket_new ( d->sources[i] );
>                    if( sock )
>                      {
> !                      d->last_good_index = i;
>                        break;
>                      }
>                  }
> --- 60,80 ----
>        if(d->last_good_index >= 0)
>          sock = g_tcp_socket_new ( d->sources[d->last_good_index] );
>   
> !      /* If there was no good connection last time or the above
> !         connect failed then try random hosts in the list.  We try
> !         random ones in case someone is accepting the connection
> !         but refusing to provide any data; we don't want to get
> !         stuck with a non-working host. */
>        if(!sock)
>              {
> !              for(i=0; i < d->num_sources * 2; i++)
>                  {
> !                  /* Find random viable source in list. */
> !              j = d->num_sources * (rand() / (RAND_MAX - 1.0));
> !                  sock = g_tcp_socket_new ( d->sources[j] );
>                    if( sock )
>                      {
> !                      d->last_good_index = j;
>                        break;
>                      }
>                  }
> -8<----------------------------------------------------------
> 
> -- 
> <[EMAIL PROTECTED]>; I don't speak for Intel or anyone.
> 
>
-------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to
> share your
> opinions on IT & business topics through brief surveys-and earn cash
>
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Ganglia-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ganglia-general
> 
> 


------------------------------------------------------
Martin Knoblauch
email: k n o b i AT knobisoft DOT de
www:   http://www.knobisoft.de

Reply via email to