author | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Thu, 25 Nov 2010 10:51:17 +0000 (11:51 +0100) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Thu, 25 Nov 2010 10:51:17 +0000 (11:51 +0100) |
src/collectd.conf.pod | patch | blob | history | |
src/processes.c | patch | blob | history | |
src/utils_rrdcreate.c | patch | blob | history |
diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod
index be7d99c845f1e9ae1af493ca190f6afbac311a3d..5fc75c52e345f70cd8b26d31a21fbacea9a27e66 100644 (file)
--- a/src/collectd.conf.pod
+++ b/src/collectd.conf.pod
values lead to a higher system load produced by collectd, while higher values
lead to more coarse statistics.
+B<Warning:> You should set this once and then never touch it again. If you do,
+I<you will have to delete all your RRD files> or know some serious RRDtool
+magic! (Assuming you're using the I<RRDtool> or I<RRDCacheD> plugin.)
+
=item B<ReadThreads> I<Num>
Number of threads to start for reading plugins. The default value is B<5>, but
diff --git a/src/processes.c b/src/processes.c
index 670aa8d717dd19e1e745b1c15584ef2a90c8af3c..856296cc896ab6c4f66e5d67559ab2833b0efe86 100644 (file)
--- a/src/processes.c
+++ b/src/processes.c
@@ -903,13 +903,18 @@ static char *ps_get_cmdline (pid_t pid, char *name, char *buf, size_t buf_len)
if ((pid < 1) || (NULL == buf) || (buf_len < 2))
return NULL;
- ssnprintf (file, sizeof (file), "/proc/%u/cmdline", pid);
+ ssnprintf (file, sizeof (file), "/proc/%u/cmdline",
+ (unsigned int) pid);
+ errno = 0;
fd = open (file, O_RDONLY);
if (fd < 0) {
char errbuf[4096];
- WARNING ("processes plugin: Failed to open `%s': %s.", file,
- sstrerror (errno, errbuf, sizeof (errbuf)));
+ /* ENOENT means the process exited while we were handling it.
+ * Don't complain about this, it only fills the logs. */
+ if (errno != ENOENT)
+ WARNING ("processes plugin: Failed to open `%s': %s.", file,
+ sstrerror (errno, errbuf, sizeof (errbuf)));
return NULL;
}
status = read (fd, (void *)buf_ptr, len);
if (status < 0) {
- char errbuf[4096];
+ char errbuf[1024];
if ((EAGAIN == errno) || (EINTR == errno))
continue;
diff --git a/src/utils_rrdcreate.c b/src/utils_rrdcreate.c
index 4ecec59dae1cdad9d3128b25f241920d888d6fce..66bb27e75dacf6ad6bce7f7f659cfd9e59bd211e 100644 (file)
--- a/src/utils_rrdcreate.c
+++ b/src/utils_rrdcreate.c
memcpy (argv + ds_num, rra_def, rra_num * sizeof (char *));
argv[ds_num + rra_num] = NULL;
- assert (vl->time > 10);
status = srrd_create (filename,
(cfg->stepsize > 0) ? cfg->stepsize : vl->interval,
- vl->time - 10,
+ (vl->time > 10) ? (vl->time - 10) : vl->time,
argc, (const char **) argv);
free (argv);