I *think* this debian commit could possibly be a good candidate to fix
Artful FTBFS situation.

-------
$ git show a7476dd9
commit a7476dd96e79197f65acf0f049f75ce8e8f9e801
Author: Jan Pokorny <jpoko...@redhat.com>
Date:   Thu Feb 2 14:51:46 2017 +0100

    Fix: crm_mon: protect against non-standard or failing asctime
    
    So far, we have been likely covered by standards requiring asctime to
    produce an output ending with \n\0 bytes, because otherwise, we would
    overrun the buffer, reading unspecified content, possibly segfaulting.
    This was actually discovered with a brand new GCC7 warning
    ( [-Werror=pointer-compare]).
    
    Another latent issue was that the code was not ready for the case
    of failing asctime call (returning NULL).  This is now fixed as well.

diff --git a/tools/crm_mon.c b/tools/crm_mon.c
index 776aea8..023b07b 100644
--- a/tools/crm_mon.c
+++ b/tools/crm_mon.c
@@ -954,10 +954,10 @@ print_nvpair(FILE *stream, const char *name, const char 
*value,
 
     /* Otherwise print user-friendly time string */
     } else {
-        char *date_str, *c;
+        static char empty_str[] = "";
+        char *c, *date_str = asctime(localtime(&epoch_time));
 
-        date_str = asctime(localtime(&epoch_time));
-        for (c = date_str; c != '\0'; ++c) {
+        for (c = (date_str != NULL) ? date_str : empty_str; *c != '\0'; ++c) {
             if (*c == '\n') {
                 *c = '\0';
                 break;

-------

I'll give it a try and update the case with the outcome of my test.

- Eric

-- 
You received this bug notification because you are a member of Ubuntu
High Availability Team, which is subscribed to corosync in Ubuntu.
https://bugs.launchpad.net/bugs/1740892

Title:
  corosync upgrade on 2018-01-02 caused pacemaker to fail

Status in OpenStack hacluster charm:
  Invalid
Status in corosync package in Ubuntu:
  Fix Released
Status in pacemaker package in Ubuntu:
  Fix Released
Status in corosync source package in Trusty:
  Won't Fix
Status in pacemaker source package in Trusty:
  Won't Fix
Status in corosync source package in Xenial:
  In Progress
Status in pacemaker source package in Xenial:
  In Progress
Status in corosync source package in Artful:
  In Progress
Status in pacemaker source package in Artful:
  In Progress
Status in corosync source package in Bionic:
  Fix Released
Status in corosync package in Debian:
  New

Bug description:
  [Impact]

  When corosync and pacemaker are both installed, a corosync upgrade
  caused pacemaker to fail. pacemaker will need to be restarted manually
  to work again, it won't recover by itself.

  [Test Case]

  1) Have corosync (< 2.3.5-3ubuntu2) and pacemaker (< 1.1.14-2ubuntu1.3) 
installed
  2) Make sure corosync & pacemaker are running via systemctl status cmd.
  3) Upgrade corosync
  4) Look corosync and pacemaker via systemctl status cmd again.

  You will notice pacemaker is dead (inactive) and doesn't recover,
  unless a systemctl start pacemaker is done manually.

  [Regression Potential]

  Regression potential is low, it doesn't change corosync/pacemaker core
  functionality. This patch make sure thing goes smoother at the
  packaging level during a corosync upgrade where pacemaker is
  installed/involved.

  This can also be useful in particular in situation where the system
  has "unattended-upgrades" enable (software upgrades without
  supervision), and no sysadmin available to start pacemaker manually
  because this isn't a schedule maintenance.

  [Other Info]

  XENIAL Merge-proposal:
  
https://code.launchpad.net/~nacc/ubuntu/+source/corosync/+git/corosync/+merge/336338
  
https://code.launchpad.net/~nacc/ubuntu/+source/pacemaker/+git/pacemaker/+merge/336339

  [Original Description]

  During upgrades on 2018-01-02, corosync and it's libs were upgraded:

  (from a trusty/mitaka cloud)

  Upgrade: libcmap4:amd64 (2.3.3-1ubuntu3, 2.3.3-1ubuntu4),
  corosync:amd64 (2.3.3-1ubuntu3, 2.3.3-1ubuntu4), libcfg6:amd64
  (2.3.3-1ubuntu3, 2.3.3-1ubuntu4), libcpg4:amd64 (2.3.3-1ubuntu3,
  2.3.3-1ubuntu4), libquorum5:amd64 (2.3.3-1ubuntu3, 2.3.3-1ubuntu4),
  libcorosync-common4:amd64 (2.3.3-1ubuntu3, 2.3.3-1ubuntu4),
  libsam4:amd64 (2.3.3-1ubuntu3, 2.3.3-1ubuntu4), libvotequorum6:amd64
  (2.3.3-1ubuntu3, 2.3.3-1ubuntu4), libtotem-pg5:amd64 (2.3.3-1ubuntu3,
  2.3.3-1ubuntu4)

  During this process, it appears that pacemaker service is restarted
  and it errors:

  syslog:Jan  2 16:09:33 juju-machine-0-lxc-4 pacemakerd[1994]:   notice: 
crm_update_peer_state: pcmk_quorum_notification: Node 
juju-machine-1-lxc-3[1001] - state is now lost (was member)
  syslog:Jan  2 16:09:34 juju-machine-0-lxc-4 pacemakerd[1994]:   notice: 
crm_update_peer_state: pcmk_quorum_notification: Node 
juju-machine-1-lxc-3[1001] - state is now member (was lost)
  syslog:Jan  2 16:14:32 juju-machine-0-lxc-4 pacemakerd[1994]:    error: 
cfg_connection_destroy: Connection destroyed
  syslog:Jan  2 16:14:32 juju-machine-0-lxc-4 pacemakerd[1994]:   notice: 
pcmk_shutdown_worker: Shuting down Pacemaker
  syslog:Jan  2 16:14:32 juju-machine-0-lxc-4 pacemakerd[1994]:   notice: 
stop_child: Stopping crmd: Sent -15 to process 2050
  syslog:Jan  2 16:14:32 juju-machine-0-lxc-4 pacemakerd[1994]:    error: 
pcmk_cpg_dispatch: Connection to the CPG API failed: Library error (2)
  syslog:Jan  2 16:14:32 juju-machine-0-lxc-4 pacemakerd[1994]:    error: 
mcp_cpg_destroy: Connection destroyed

  Also affected xenial/ocata

To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-hacluster/+bug/1740892/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-ha
Post to     : ubuntu-ha@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-ha
More help   : https://help.launchpad.net/ListHelp

Reply via email to