Dear all:

Looks like we have a bug in setup_listen_channels_pollset() in gmond.c.

If your gmond.conf has no udp_recv_channel or tcp_accept_channel
defined, gmond will fail to run with the error message:

apr_pollset_create failed: Invalid argument

The error checking for apr_pollset_create() was recently implemented
since r2041.

The issue seems to be that on certain platform, apr_pollset_create()
will fail if "total_listen_channels" = 0 (this is the "size" argument
according to the apr_pollset_create definition).

Previously, since there was no error checking, the code would continue
merrily without erroring out.  listen_channels will still be NULL and
thus would set deaf = 1 in main().  Now since we have error checking,
it actually bombs out.

One fix is basically to check whether total_listen_channels is 0 prior
to the apr_pollset_create() call and if so just return.  This should
give the same behaviour as before.

So far I have been able to reproduce it on CentOS 5 x86_64.  However,
there has been conflicting reports regarding whether this fails on
Ubuntu 9.04 or not.  So if you guys could test this out and report
back what platforms you encounter this bug, that would be great.

To reproduce the bug, simply comment out the udp_recv_channel and
tcp_accept_channel clauses and run gmond.  It should fail with the
error message mentioned.

Thanks to BarnacleBob on IRC for reporting/troubleshooting the bug.

Cheers,

Bernard

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to