[collectd] Bug in utils_cache.c

Mariusz Gronczewski xani666 at gmail.com
Tue Jul 7 22:11:26 CEST 2009


I think i found another one, after compiling today's git snapshot.
When i fire collectd after few (5-30)s i get
collectd: utils_cache.c:55: cache_compare: Assertion `(a != ((void
*)0)) && (b != ((void *)0))' failed.

this is server which gathers data from several other servers so prob.
on less busy machine it will take more time to trigger.
Let me know if u want additional data.

Mariusz.

2009/7/7 Paul Sadauskas <psadauskas at gmail.com>:
> tokkee on IRC & I think we found a bug with utils_cache.c. The
> uc_check_timeout function is missing a continue after the
> "uninteresting" service check, that causes a key to be null.
>
> Here's a quick patch:
>
> diff --git a/src/utils_cache.c b/src/utils_cache.c
> index 5e62aa4..ea46750 100644
> --- a/src/utils_cache.c
> +++ b/src/utils_cache.c
> @@ -345,6 +345,7 @@ int uc_check_timeout (void)
>       sfree (keys[i]);
>       sfree (key);
>       cache_free (ce);
> +      continue;
>     }
>
>     /* If we get here, the value is ``interesting''. Query the record from the
>
>
> I have a backtrace showing the log and error message here:
> http://gist.github.com/142274
>
> I'm not sure if this is all that's needed, or even tested it. It takes
> ~24 hours for this bug to show itself.
>
> Let me know if you need any more info.
>
> Paul
>
> _______________________________________________
> collectd mailing list
> collectd at verplant.org
> http://mailman.verplant.org/listinfo/collectd
>



More information about the collectd mailing list