severity 533325 important thanks Hi Paul,
Thanks for reporting this! On Tue, Jun 16, 2009 at 04:23:31PM +0200, Paul Staroch wrote: > When I configure collectd to use the ping plugin in order to ping more than > 3 hosts, it fails to run. When running collectd by entering > > /usr/sbin/collectd -f -C /etc/collectd/collectd.conf > > into a root shell, collectd aborts with the following error message: > > collectd: liboping.c:168: ping_timeval_sub: Assertion `(res->tv_sec > 0) || > ((res->tv_sec == 0) && (res->tv_usec > 0))' failed. > Aborted Uhm ... I'm kinda surprised that this seems to be related to the number of hosts. That assertion is triggered if, supposedly, an ICMP ECHO_REPLY was received "right away" - i.e. the calculated round trip time ends up being zero. So, if this is related to the number of hosts, the correlation between host and received ECHO_REPLY might be broken which would be an even worse issue :-/ Does this happen no matter which hosts are added or is it related to adding some specific host (like localhost)? > I'm using collectd 4.4.2-3 from the stable repository. Replacing collectd by > a newer version compiled from source (e.g., 4.6.3 or 4.7.1) doesn't resolve > this problem. Replacing liboping0 by the current version compiled from > source (1.1.2) makes collectd work as intended. Hence I think, this > problem belongs to liboping0. > > In liboping0's changelog at http://verplant.org/liboping/, a wrong assertion > is mentioned that has been fixed in 1.0.0, perhaps this is the assertion > that fails in my case. Yep - that assertion has been changed to "... (res->tv_usec >= 0)", i.e. allowing the round trip time to be zero (which e.g. has been reported to happen in some virtualized environments). Cheers, Sebastian -- Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/ Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety. -- Benjamin Franklin
signature.asc
Description: Digital signature