import OL pcp-6.2.0-3.0.1.el9_4
This commit is contained in:
parent
3240804836
commit
0f8cc2f172
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
SOURCES/pcp-6.2.0.src.tar.gz
|
||||
SOURCES/redhat-issues-RHEL-50693-hacluster-metrics-update.patch
|
||||
|
@ -1 +1,2 @@
|
||||
617d0e505af5f253080effb6701e089fc02e7379 SOURCES/pcp-6.2.0.src.tar.gz
|
||||
17b4396eb6593178f6c29db6f0eb01234eb6dba0 SOURCES/redhat-issues-RHEL-50693-hacluster-metrics-update.patch
|
||||
|
108
SOURCES/1001-libpcp-small-derived-metrics-bug-fix.patch
Normal file
108
SOURCES/1001-libpcp-small-derived-metrics-bug-fix.patch
Normal file
@ -0,0 +1,108 @@
|
||||
From f8dc87ed130a0cfe1077242a4da2d621c4016bfb Mon Sep 17 00:00:00 2001
|
||||
From: Ken McDonell <kenj@kenj.id.au>
|
||||
Date: Thu, 4 Apr 2024 11:34:41 +1100
|
||||
Subject: [PATCH] libpcp: small derived metrics bug fix
|
||||
|
||||
This is a partial fix for
|
||||
https://github.com/performancecopilot/pcp/issues/1921
|
||||
|
||||
If the operand has the semantics of PM_SEM_COUNTER and the
|
||||
value goes backwards from one fetch to the next, then return
|
||||
no values for rate().
|
||||
|
||||
There is QA to come, but this needs a final blessing from Oracle
|
||||
before the reproducer archive can be included.
|
||||
|
||||
cherry-picked:- f8dc87ed130a0cfe1077242a4da2d621c4016bfb
|
||||
[Orabug: 36538820]
|
||||
Signed-off-by: sagar sagar <sagar.sagar@oracle.com>
|
||||
---
|
||||
man/man3/pmregisterderived.3 | 13 +++++++++----
|
||||
src/libpcp/src/derive_fetch.c | 23 ++++++++++++++++++++++-
|
||||
2 files changed, 31 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/man/man3/pmregisterderived.3 b/man/man3/pmregisterderived.3
|
||||
index d8719f373..32963c3b3 100644
|
||||
--- a/man/man3/pmregisterderived.3
|
||||
+++ b/man/man3/pmregisterderived.3
|
||||
@@ -485,15 +485,20 @@ metric x with the dimension in the
|
||||
.B time
|
||||
domain decreased by one and scaling if required in the time utilization case
|
||||
where the operand is in units of time, and the derived metric is unitless.
|
||||
-This mimics the rate conversion applied to counter metrics by tools
|
||||
+There is one value in the result
|
||||
+for each instance that appears in both the current and the previous
|
||||
+sample, except in the case where the metric x has
|
||||
+the semantics of a counter, i.e. PM_SEM_COUNTER, and
|
||||
+current value of an instance is smaller than the previous value
|
||||
+of the same instance then no value is
|
||||
+returned for this instance (this corresponds to a ``counter wrap'' or a ``counter reset'').
|
||||
+These rules
|
||||
+mimic the rate conversion applied to counter metrics by tools
|
||||
such as
|
||||
.BR pmval (1),
|
||||
.BR pmie (1)
|
||||
and
|
||||
.BR pmchart (1).
|
||||
-There is one value in the result
|
||||
-for each instance that appears in both the current and the previous
|
||||
-sample.
|
||||
T}
|
||||
_
|
||||
instant(x) T{
|
||||
diff --git a/src/libpcp/src/derive_fetch.c b/src/libpcp/src/derive_fetch.c
|
||||
index 62921ece4..ed5f6ebcf 100644
|
||||
--- a/src/libpcp/src/derive_fetch.c
|
||||
+++ b/src/libpcp/src/derive_fetch.c
|
||||
@@ -847,7 +847,13 @@ eval_expr(__pmContext *ctxp, node_t *np, struct timespec *stamp, int numpmid,
|
||||
}
|
||||
}
|
||||
else {
|
||||
- /* rate() conversion, type will be DOUBLE */
|
||||
+ /*
|
||||
+ * rate() conversion, type will be DOUBLE
|
||||
+ *
|
||||
+ * For COUNTER metrics, return "no value" if the counter is
|
||||
+ * NOT monotonic increasing ... this matches what pmval(1)
|
||||
+ * and pmie(1) do in the same circumstances.
|
||||
+ */
|
||||
struct timespec stampdiff;
|
||||
|
||||
stampdiff = np->data.info->stamp;
|
||||
@@ -857,18 +863,33 @@ eval_expr(__pmContext *ctxp, node_t *np, struct timespec *stamp, int numpmid,
|
||||
np->data.info->ivlist[k].value.d = (double)(np->left->data.info->ivlist[i].value.l - np->left->data.info->last_ivlist[j].value.l);
|
||||
break;
|
||||
case PM_TYPE_U32:
|
||||
+ if (np->left->desc.sem == PM_SEM_COUNTER &&
|
||||
+ np->left->data.info->ivlist[i].value.ul < np->left->data.info->last_ivlist[j].value.ul)
|
||||
+ continue;
|
||||
np->data.info->ivlist[k].value.d = (double)(np->left->data.info->ivlist[i].value.ul - np->left->data.info->last_ivlist[j].value.ul);
|
||||
break;
|
||||
case PM_TYPE_64:
|
||||
+ if (np->left->desc.sem == PM_SEM_COUNTER &&
|
||||
+ np->left->data.info->ivlist[i].value.ll < np->left->data.info->last_ivlist[j].value.ll)
|
||||
+ continue;
|
||||
np->data.info->ivlist[k].value.d = (double)(np->left->data.info->ivlist[i].value.ll - np->left->data.info->last_ivlist[j].value.ll);
|
||||
break;
|
||||
case PM_TYPE_U64:
|
||||
+ if (np->left->desc.sem == PM_SEM_COUNTER &&
|
||||
+ np->left->data.info->ivlist[i].value.ull < np->left->data.info->last_ivlist[j].value.ull)
|
||||
+ continue;
|
||||
np->data.info->ivlist[k].value.d = (double)(np->left->data.info->ivlist[i].value.ull - np->left->data.info->last_ivlist[j].value.ull);
|
||||
break;
|
||||
case PM_TYPE_FLOAT:
|
||||
+ if (np->left->desc.sem == PM_SEM_COUNTER &&
|
||||
+ np->left->data.info->ivlist[i].value.f < np->left->data.info->last_ivlist[j].value.f)
|
||||
+ continue;
|
||||
np->data.info->ivlist[k].value.d = (double)(np->left->data.info->ivlist[i].value.f - np->left->data.info->last_ivlist[j].value.f);
|
||||
break;
|
||||
case PM_TYPE_DOUBLE:
|
||||
+ if (np->left->desc.sem == PM_SEM_COUNTER &&
|
||||
+ np->left->data.info->ivlist[i].value.d < np->left->data.info->last_ivlist[j].value.d)
|
||||
+ continue;
|
||||
np->data.info->ivlist[k].value.d = np->left->data.info->ivlist[i].value.d - np->left->data.info->last_ivlist[j].value.d;
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.39.3
|
||||
|
@ -1,35 +0,0 @@
|
||||
commit ce6112399ebf0ff39069a34bc9286242c875555e
|
||||
Author: adam kaminski <adam@adamkaminski.com>
|
||||
Date: Fri Feb 9 12:49:34 2024 -0500
|
||||
|
||||
pmapi.py : fix for struct_time() and day of year out of range on yyyy-01-01
|
||||
|
||||
Fix for `day of year out of range` on 2024-01-01, due to self.tm_yday - 1, which returns `[2024, 1, 1, 2, 3, 0, 0, -1, 0]`. The range for tm_yday should be [1, 366].
|
||||
|
||||
# timedatectl set-ntp false
|
||||
# timedatectl set-time "2024-01-01 00:00:00"
|
||||
# /usr/libexec/pcp/bin/pcp-mpstat -P ALL -t 1 -s 2
|
||||
Traceback (most recent call last):
|
||||
File "/usr/libexec/pcp/bin/pcp-mpstat", line 653, in <module>
|
||||
sts = manager.run()
|
||||
File "/usr/lib64/python3.6/site-packages/pcp/pmcc.py", line 687, in run
|
||||
self._printer.report(self)
|
||||
File "/usr/libexec/pcp/bin/pcp-mpstat", line 606, in report
|
||||
self.print_machine_info(group, manager)
|
||||
File "/usr/libexec/pcp/bin/pcp-mpstat", line 585, in print_machine_info
|
||||
time_string = time.strftime("%x", timestamp.struct_time())
|
||||
ValueError: day of year out of range
|
||||
|
||||
diff --git a/src/python/pcp/pmapi.py b/src/python/pcp/pmapi.py
|
||||
index fd8d40e32c..05c8afb079 100644
|
||||
--- a/src/python/pcp/pmapi.py
|
||||
+++ b/src/python/pcp/pmapi.py
|
||||
@@ -330,7 +330,7 @@ class tm(Structure):
|
||||
pywday = 6
|
||||
stlist = [self.tm_year + 1900, self.tm_mon + 1, self.tm_mday,
|
||||
self.tm_hour, self.tm_min, self.tm_sec,
|
||||
- pywday, self.tm_yday - 1, self.tm_isdst]
|
||||
+ pywday, self.tm_yday + 1, self.tm_isdst]
|
||||
return time.struct_time(stlist)
|
||||
|
||||
def __str__(self):
|
@ -0,0 +1,27 @@
|
||||
commit 3bde240a2acc85e63e2f7813330713dd9b59386e
|
||||
Author: Nathan Scott <nathans@redhat.com>
|
||||
Date: Wed Mar 27 14:51:28 2024 +1100
|
||||
|
||||
pmproxy: disable Redis protocol proxying by default
|
||||
|
||||
If a redis-server has been locked down in terms of connections,
|
||||
we want to prevent pmproxy from being allowed to send arbitrary
|
||||
RESP commands to it.
|
||||
|
||||
This protocol proxying doesn't affect PCP functionality at all,
|
||||
its more of a developer/sysadmin convenience when Redis used in
|
||||
cluster mode (relatively uncommon compared to localhost mode).
|
||||
|
||||
diff --git a/src/pmproxy/pmproxy.conf b/src/pmproxy/pmproxy.conf
|
||||
index e54891792e..4cbc1c96af 100644
|
||||
--- a/src/pmproxy/pmproxy.conf
|
||||
+++ b/src/pmproxy/pmproxy.conf
|
||||
@@ -29,7 +29,7 @@ pcp.enabled = true
|
||||
http.enabled = true
|
||||
|
||||
# support Redis protocol proxying
|
||||
-redis.enabled = true
|
||||
+redis.enabled = false
|
||||
|
||||
# support SSL/TLS protocol wrapping
|
||||
secure.enabled = true
|
@ -1,6 +1,6 @@
|
||||
Name: pcp
|
||||
Version: 6.2.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3.0.1%{?dist}
|
||||
Summary: System-level performance monitoring and performance management
|
||||
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0
|
||||
URL: https://pcp.io
|
||||
@ -8,7 +8,12 @@ URL: https://pcp.io
|
||||
Source0: https://github.com/performancecopilot/pcp/releases/pcp-%{version}.src.tar.gz
|
||||
|
||||
Patch1: redhat-issues-RHEL-2317-default-archive-version.patch
|
||||
Patch2: redhat-issues-RHEL-25543-python-year-day-range.patch
|
||||
Patch2: redhat-issues-RHEL-30719-pmproxy-resp-proxy-disabled.patch
|
||||
Patch3: redhat-issues-RHEL-50693-hacluster-metrics-update.patch
|
||||
|
||||
#Oracle patches
|
||||
Patch1001: 1001-libpcp-small-derived-metrics-bug-fix.patch
|
||||
|
||||
|
||||
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
|
||||
ExcludeArch: %{ix86}
|
||||
@ -3493,8 +3498,14 @@ fi
|
||||
%files zeroconf -f pcp-zeroconf-files.rpm
|
||||
|
||||
%changelog
|
||||
* Wed Mar 20 2024 Nathan Scott <nathans@redhat.com> - 6.2.0-2
|
||||
- Fix python sub-package year day range issue (RHEL-25543)
|
||||
* Tue Sep 03 2024 EL Errata <el-errata_ww@oracle.com> - 6.2.0-3.0.1
|
||||
- Fixed libpcp derived metric issue for ol9 [Orabug: 36538820]
|
||||
|
||||
* Thu Aug 08 2024 Nathan Scott <nathans@redhat.com> - 6.2.0-3
|
||||
- Update hacluster PMDA for pacemaker 2.1.6 crm_mon (RHEL-50693)
|
||||
|
||||
* Wed Apr 17 2024 Nathan Scott <nathans@redhat.com> - 6.2.0-2
|
||||
- Disable RESP proxying by default in pmproxy (RHEL-30719)
|
||||
|
||||
* Mon Feb 12 2024 Nathan Scott <nathans@redhat.com> - 6.2.0-1
|
||||
- Rebase to latest stable version of PCP (RHEL-2317)
|
||||
|
Loading…
Reference in New Issue
Block a user