In amongst a bunch of other people's commits I've been testing, there are some
from me that should be considered for the pending release, esp pmdate and
qa/667.
Changes committed to git://git.pcp.io/kenj/pcp master
Nathan Scott (8):
python3: ensure string encoding of popen results
mingw64: updates for use of symlinks in pmlogger
mingw64: allow pmwebd builds for windows as well
pcp-collectl: fix recording of data to archive folios
pmdalinux: ensure softnet help text fits in expected length
docs: add some missing text to pmgetconfig man page
qa: fix fallout from primary logger hardlink/symlink switch
mingw64: threaded builds work fine now, drop special-case
Ken McDonell (3):
pmdate: correct year and month offset problems at end of month
qa/admin/check-vm: more tweaking of the inventory
qa/667: rework pick-ascii-from-mixed-binary-data logic
Mark Goodwin (2):
pmlogger - handle stale primary control and socket files
qa - check primary logger correctly restarts with stale run files present
Frank Ch. Eigler (1):
pmwebd graphite mode: elide repeated indom searching
Lukas Berk (1):
build: fix an incorrect systemd conditional rpm macro
Makepkgs | 1
build/rpm/fedora.spec | 2
configure | 3
configure.ac | 3
man/man3/pmgetconfig.3 | 15 ++-
qa/667 | 27 ++++++
qa/667.out | 89 +++++++++++-----------
qa/808 | 55 ++++++++++++++
qa/808.out | 5 +
qa/admin/check-vm | 10 +-
qa/common.check | 54 +++++--------
qa/group | 1
qa/src/test_webapi.python | 6 -
src/include/pcp/config.h.in | 4 +
src/libpcp/src/win32.c | 80 +++++++-------------
src/pcp/collectl/pcp-collectl.py | 24 +++---
src/pmdas/linux/help | 5 -
src/pmdate/pmdate.c | 7 +
src/pmlogger/pmlogger_check.sh | 58 +++++---------
src/pmlogger/pmlogger_daily.sh | 58 +++++---------
src/pmlogger/src/ports.c | 153 +++++++++++++++++++++++++++++++--------
src/pmwebapi/GNUmakefile | 10 ++
src/pmwebapi/main.cxx | 11 +-
src/pmwebapi/pmgraphite.cxx | 48 +++++++-----
src/pmwebapi/pmwebapi.h | 4 +
src/pmwebapi/util.cxx | 4 -
26 files changed, 446 insertions(+), 291 deletions(-)
Details ...
commit 9f62137df02bca2898a1a7f45a69520bc4c34357
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Thu Jul 30 11:21:18 2015 +1000
qa/667: rework pick-ascii-from-mixed-binary-data logic
strings | sed works much better than od
commit 58fdef36157ab47f0dcf0b7872e549c8612d1c67
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Thu Jul 30 08:41:41 2015 +1000
qa/admin/check-vm: more tweaking of the inventory
commit 74c443189fe35d7f58a0215a7f7d76f6b622687a
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Thu Jul 30 08:38:04 2015 +1000
pmdate: correct year and month offset problems at end of month
Close to the end of the month (days 29, 30, 31) going forwards
or backwards by some number of months and/or years can lead to
semantic ambiguity, e.g. on 20150730 (today) what is -5 months?
20150230 is not correct, but that's what pmdate used to report.
Turns out mktime() fixes this sort of mess up, so the fix is
easy. And the answer to the question above is 20150302.
commit a4919ddbc5918ecd2d4d41245705e99a011a84f6
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 17:26:25 2015 +1000
mingw64: threaded builds work fine now, drop special-case
commit ec3f1325c3941db0e81e68bc682642fbeec559e9
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 16:50:55 2015 +1000
qa: fix fallout from primary logger hardlink/symlink switch
Resolves failures in qa/280 and qa/430.
commit 4aec51f3c019e3f20b347900c20bc400998934ea
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 15:47:28 2015 +1000
docs: add some missing text to pmgetconfig man page
commit c9f18a328fded647c87ca56fdee50fd04eca6914
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 15:02:57 2015 +1000
pmdalinux: ensure softnet help text fits in expected length
Re-format softnet stats help text to meet length requirements.
Resolves a failure in test qa/469.
commit d83721b40e2f54808de6fe8963a9a92ee8c1f253
Author: Lukas Berk <lberk@xxxxxxxxxx>
Date: Wed Jul 29 15:00:26 2015 +1000
build: fix an incorrect systemd conditional rpm macro
commit 090b66769fca96e64105bddab42af513f8854004
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 14:38:38 2015 +1000
pcp-collectl: fix recording of data to archive folios
Somehow, somewhere, the generation of pmlogger configs
became broken in pcp-collectl - was generaring an invalid
syntax (all metrics on one line).
Tidied up the usage message generation while there, using
the more modern pmSetLongOptionText interface instead of
overloading unrelated calls.
Test qa/709 is now passing once more.
commit 9adab0105a45664c70760aa3fa66d0b2a4401be4
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 14:08:02 2015 +1000
mingw64: allow pmwebd builds for windows as well
Handful of small remaining portability issues resolved...
- no SIGQUIT or geteuid on Windows
- no fnmatch, only used in graphite-land so conditionally
switch that off
- link with ws2_32 for getaddrinfo
- no setenv, so switch to putenv like everywhere else
- fix type for final parameter to MHD_get_fdset calls
- don't use headers unconditionally/unnecessarily that
have already been conditionally included via pmapi.h
... and it builds+links.
commit 78383c80547a653623d408795d4d05d9fba18ced
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 14:01:58 2015 +1000
mingw64: updates for use of symlinks in pmlogger
Also some small libpcp cleanups to drop some IPv6 code now
available elsewhere, and switch to Mingw64 strerror_s use.
commit 27355d3fffe41b4970555ca986ba979ff2fb60ee
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Mon Jul 27 20:17:39 2015 -0400
pmwebd graphite mode: elide repeated indom searching
It was reported that for some larger archives, pmwebd was taking
noticable time running pmGetInDomArchive. This effort was being
repeated for every metric, whereas it could be reused across metrics
with the same indom. We now do this by memoizing the wildcard-filtered
instance names during pmns iteration. (The cache is thrown away after
pmns traversal.)
There are no intended changes in visible behavior except for speedup;
previous QA is sufficient.
commit 3c5753f9107061f822133d8ed061201541ea00db
Author: Mark Goodwin <mgoodwin@xxxxxxxxxx>
Date: Wed Jul 29 13:06:46 2015 +1000
qa - check primary logger correctly restarts with stale run files present
qa/808 checks pmlogger correctly restarts when there are stale run files
after the primary logger is killed with SIGKILL. The fix for this issue
requires the following earlier commit :
commit 2bf7acfe8c47ce0f5c257f3ba712b56cd44972b6
Author: Mark Goodwin <mgoodwin@xxxxxxxxxx>
Date: Tue Jul 28 17:20:53 2015 +1000
pmlogger - handle stale primary control and socket files
commit df864e7cab7a452792c05912e40429c6ae1bd95a
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed Jul 29 11:09:42 2015 +1000
python3: ensure string encoding of popen results
qa/662 has started failing on some python variants with byte/string
encoding issues from the popen result, after recent python3 porting
work. Testing on several python variants suggests that use of the
universal-end-of-line Popen option for string result encoding is the
best option - it forces the correctly decoded string variants in all
cases (so far anyway).
commit 2bf7acfe8c47ce0f5c257f3ba712b56cd44972b6
Author: Mark Goodwin <mgoodwin@xxxxxxxxxx>
Date: Tue Jul 28 17:20:53 2015 +1000
pmlogger - handle stale primary control and socket files
If pmlogger is SIGKILL'd then its exit handlers are not run and so the
control file and socket may not be removed. This is what happens when
a pcp-pmlogger container is killed by docker, but can also happen on
an abrupt reboot or if the pmlogger process is manually killed. When
pmlogger_check is next launched by cron, the new primary pmlogger process
thinks there is already a primary pmlogger process running (due to the
stale control file and socket, along with the 'primary' links to such).
This patch detects and removes stale control and socket files and their
primary links before creating new ones. If the pmlogger process is
actually still running then those files are not stale and the new
pmlogger process will instead exit with a configuration error (there
should only ever be one primary pmlogger).
Also change from hard links to symlinks for the primary control file
and the primary socket - this simplfies the code somewhat and it's
easier to check the destination of the 'primary' links.
modified: src/pmlogger/pmlogger_check.sh
modified: src/pmlogger/pmlogger_daily.sh
modified: src/pmlogger/src/ports.c
|