Activity log for bug #1900016

Date Who What changed Old value New value Message
2020-10-15 20:09:05 Jason Hobbs bug added bug
2020-10-15 20:09:19 Jason Hobbs bug added subscriber Canonical Field High
2020-10-15 20:30:27 Jason Hobbs bug added subscriber Canonical Field Critical
2020-10-15 20:30:30 Jason Hobbs removed subscriber Canonical Field High
2020-10-15 21:29:57 Richard Harding tags cdo-qa foundations-engine block-proposed-focal cdo-qa foundations-engine
2020-10-15 21:32:45 Richard Harding resource-agents (Ubuntu): assignee Bryce Harrington (bryce)
2020-10-15 21:32:55 Richard Harding resource-agents (Ubuntu): status New Triaged
2020-10-15 21:32:57 Richard Harding resource-agents (Ubuntu): importance Undecided Critical
2020-10-15 22:19:15 Bryce Harrington resource-agents (Ubuntu): status Triaged In Progress
2020-10-15 22:22:21 Bryce Harrington nominated for series Ubuntu Focal
2020-10-15 22:22:21 Bryce Harrington bug task added resource-agents (Ubuntu Focal)
2020-10-15 22:22:21 Bryce Harrington nominated for series Ubuntu Groovy
2020-10-15 22:22:21 Bryce Harrington bug task added resource-agents (Ubuntu Groovy)
2020-10-15 22:22:28 Bryce Harrington resource-agents (Ubuntu Focal): importance Undecided Critical
2020-10-15 22:22:31 Bryce Harrington resource-agents (Ubuntu Focal): status New In Progress
2020-10-15 22:22:33 Bryce Harrington resource-agents (Ubuntu Focal): assignee Bryce Harrington (bryce)
2020-10-15 22:22:38 Bryce Harrington resource-agents (Ubuntu Focal): status In Progress Triaged
2020-10-15 22:45:36 Nobuto Murata bug added subscriber Nobuto Murata
2020-10-16 00:17:15 Bryce Harrington attachment added Fix crm_mon format detection https://bugs.launchpad.net/ubuntu/+source/resource-agents/+bug/1900016/+attachment/5422745/+files/crm-mon-format.patch
2020-10-16 00:20:25 Bryce Harrington resource-agents (Ubuntu Groovy): status In Progress Fix Released
2020-10-16 00:20:59 Bryce Harrington resource-agents (Ubuntu Focal): status Triaged In Progress
2020-10-16 00:39:11 Launchpad Janitor merge proposal linked https://code.launchpad.net/~bryce/ubuntu/+source/resource-agents/+git/resource-agents/+merge/392346
2020-10-16 01:14:25 Bryce Harrington description There is a bug in the resource agent's node_exist function. It looks at crm_mon output, which has changed between bionic and focal. The result is that the 'pgsql-status' and 'pgsql-data-status' attributes are missing from crm status --as-xml output on focal. Here is the focal output: http://paste.ubuntu.com/p/RrFnPJHWCS/ Here is the bionic output: http://paste.ubuntu.com/p/NrvqtjJD5r/ This is the node_exist function: node_exist() { print_crm_mon | tr '[A-Z]' '[a-z]' | grep -q "^node $1" } It's looking for a line starting with "Node <nodename>". That works in bionic, but in focal, it's " * Node <nodename>". is_online has the same problem: is_node_online() { print_crm_mon | tr '[A-Z]' '[a-z]' | grep -e "^node $1 " -e "^node $1:" | grep -q -v "offline" } It looks like this is the upstream: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/pgsql It's fixed there; they look at crm_mon xml output instead. I tested with changing the regex to "node $1:" and it works fine. that could be tightened up a bit to just match "node <nodename>" or " * node <nodename>", but I'm not sure if we shouldn't just pull in something from upstream so I haven't spent time refining that. this is on focal with resource-agents 1:4.5.0-2ubuntu2 [Impact] resource-agent uses crm_mon to determine node state, however crm_mon's output format differs on bionic and focal which results in invalid status reporting for focal hosts. This has resulted in, for example, failure when migrating a bionic pgsql node to focal. [Test Case] TBD [Regression Potential] Since this changes the node status reporting for resource-agents, watch for anything depending on the status information for managing nodes such as issues upgrading software or migrating to new ubuntu releases, or such as web dashboards, etc. [Fix] Upstream appears to have encountered and fixed the issue by adjusting the regex to cover the new line format. This corresponds to the following upstream commit: https://github.com/ClusterLabs/resource-agents/commit/2a56d5b2 [Discussion] In groovy's 4.6.1, the issue is fixed a bit differently, by switching to use of crm_mon1200 XML format [Original Report] There is a bug in the resource agent's node_exist function. It looks at crm_mon output, which has changed between bionic and focal. The result is that the 'pgsql-status' and 'pgsql-data-status' attributes are missing from crm status --as-xml output on focal. Here is the focal output: http://paste.ubuntu.com/p/RrFnPJHWCS/ Here is the bionic output: http://paste.ubuntu.com/p/NrvqtjJD5r/ This is the node_exist function: node_exist() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -q "^node $1" } It's looking for a line starting with "Node <nodename>". That works in bionic, but in focal, it's " * Node <nodename>". is_online has the same problem: is_node_online() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -e "^node $1 " -e "^node $1:" | grep -q -v "offline" } It looks like this is the upstream: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/pgsql It's fixed there; they look at crm_mon xml output instead. I tested with changing the regex to "node $1:" and it works fine. that could be tightened up a bit to just match "node <nodename>" or " * node <nodename>", but I'm not sure if we shouldn't just pull in something from upstream so I haven't spent time refining that. this is on focal with resource-agents 1:4.5.0-2ubuntu2
2020-10-16 01:44:26 Jason Hobbs removed subscriber Canonical Field Critical
2020-10-16 01:44:34 Jason Hobbs bug added subscriber Canonical Field High
2020-10-21 18:02:08 Lucas Kanashiro description [Impact] resource-agent uses crm_mon to determine node state, however crm_mon's output format differs on bionic and focal which results in invalid status reporting for focal hosts. This has resulted in, for example, failure when migrating a bionic pgsql node to focal. [Test Case] TBD [Regression Potential] Since this changes the node status reporting for resource-agents, watch for anything depending on the status information for managing nodes such as issues upgrading software or migrating to new ubuntu releases, or such as web dashboards, etc. [Fix] Upstream appears to have encountered and fixed the issue by adjusting the regex to cover the new line format. This corresponds to the following upstream commit: https://github.com/ClusterLabs/resource-agents/commit/2a56d5b2 [Discussion] In groovy's 4.6.1, the issue is fixed a bit differently, by switching to use of crm_mon1200 XML format [Original Report] There is a bug in the resource agent's node_exist function. It looks at crm_mon output, which has changed between bionic and focal. The result is that the 'pgsql-status' and 'pgsql-data-status' attributes are missing from crm status --as-xml output on focal. Here is the focal output: http://paste.ubuntu.com/p/RrFnPJHWCS/ Here is the bionic output: http://paste.ubuntu.com/p/NrvqtjJD5r/ This is the node_exist function: node_exist() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -q "^node $1" } It's looking for a line starting with "Node <nodename>". That works in bionic, but in focal, it's " * Node <nodename>". is_online has the same problem: is_node_online() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -e "^node $1 " -e "^node $1:" | grep -q -v "offline" } It looks like this is the upstream: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/pgsql It's fixed there; they look at crm_mon xml output instead. I tested with changing the regex to "node $1:" and it works fine. that could be tightened up a bit to just match "node <nodename>" or " * node <nodename>", but I'm not sure if we shouldn't just pull in something from upstream so I haven't spent time refining that. this is on focal with resource-agents 1:4.5.0-2ubuntu2 [Impact] resource-agent uses crm_mon to determine node state, however crm_mon's output format differs on bionic and focal which results in invalid status reporting for focal hosts. This has resulted in, for example, failure when migrating a bionic pgsql node to focal. [Test Case] Set up a 4-nodes Focal Pacemaker/Corosync cluster with the following CIB: https://paste.ubuntu.com/p/Mqcn7HMzng/ Check the XML file with the cluster status, the 'pgsql-status' and 'pgsql-data-status' are not listed as nodes attributes: ubuntu@ekans:~$ sudo crm_mon --as-xml | grep -A11 "<node_attributes>" <node_attributes> <node name="budew"> <attribute name="master-pgsql" value="1000"/> <attribute name="pgsql-xlog-loc" value="0000000004000150"/> </node> <node name="ekans"> <attribute name="master-pgsql" value="1000"/> <attribute name="pgsql-master-baseline" value="00000000040000A0"/> </node> <node name="tyrogue"> <attribute name="master-pgsql" value="1000"/> <attribute name="pgsql-xlog-loc" value="0000000004000150"/> [Regression Potential] Since this changes the node status reporting for resource-agents, watch for anything depending on the status information for managing nodes such as issues upgrading software or migrating to new ubuntu releases, or such as web dashboards, etc. [Fix] Upstream appears to have encountered and fixed the issue by adjusting the regex to cover the new line format. This corresponds to the following upstream commit: https://github.com/ClusterLabs/resource-agents/commit/2a56d5b2 [Discussion] In groovy's 4.6.1, the issue is fixed a bit differently, by switching to use of crm_mon1200 XML format [Original Report] There is a bug in the resource agent's node_exist function. It looks at crm_mon output, which has changed between bionic and focal. The result is that the 'pgsql-status' and 'pgsql-data-status' attributes are missing from crm status --as-xml output on focal. Here is the focal output: http://paste.ubuntu.com/p/RrFnPJHWCS/ Here is the bionic output: http://paste.ubuntu.com/p/NrvqtjJD5r/ This is the node_exist function: node_exist() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -q "^node $1" } It's looking for a line starting with "Node <nodename>". That works in bionic, but in focal, it's " * Node <nodename>". is_online has the same problem: is_node_online() {     print_crm_mon | tr '[A-Z]' '[a-z]' | grep -e "^node $1 " -e "^node $1:" | grep -q -v "offline" } It looks like this is the upstream: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/pgsql It's fixed there; they look at crm_mon xml output instead. I tested with changing the regex to "node $1:" and it works fine. that could be tightened up a bit to just match "node <nodename>" or " * node <nodename>", but I'm not sure if we shouldn't just pull in something from upstream so I haven't spent time refining that. this is on focal with resource-agents 1:4.5.0-2ubuntu2
2020-10-21 21:17:25 Bryce Harrington bug added subscriber Ubuntu Stable Release Updates Team
2020-10-21 21:17:36 Bryce Harrington summary pgsql resource agent uses regexes for old crm_mon format, breaks pgsql-status and pgsql-data-status attributes [SRU] pgsql resource agent uses regexes for old crm_mon format, breaks pgsql-status and pgsql-data-status attributes
2020-10-27 21:19:07 Brian Murray resource-agents (Ubuntu Focal): status In Progress Fix Committed
2020-10-27 21:19:10 Brian Murray bug added subscriber SRU Verification
2020-10-27 21:19:14 Brian Murray tags block-proposed-focal cdo-qa foundations-engine block-proposed-focal cdo-qa foundations-engine verification-needed verification-needed-focal
2020-11-09 22:48:52 Jason Hobbs tags block-proposed-focal cdo-qa foundations-engine verification-needed verification-needed-focal block-proposed-focal cdo-qa foundations-engine verification-done verification-done-focal
2020-12-04 17:46:52 Bryce Harrington tags block-proposed-focal cdo-qa foundations-engine verification-done verification-done-focal cdo-qa foundations-engine verification-done verification-done-focal
2020-12-07 09:37:38 Launchpad Janitor resource-agents (Ubuntu Focal): status Fix Committed Fix Released
2020-12-07 09:37:42 Łukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team