>From upstream documentation:

"""
Pacemaker used to obtain membership and quorum from a custom Corosync plugin. 
This plugin also had the capability to start Pacemaker automatically when 
Corosync was started. Neither behavior is possible with Corosync 2.0 and beyond 
as support for plugins was removed.

Instead, Pacemaker must be started as a separate job/initscript. Also, since 
Pacemaker made use of the plugin for message routing, a node using the plugin 
(Corosync prior to 2.0) cannot talk to one that isn’t (Corosync 2.0+).
Rolling upgrades between these versions are therefore not possible and an 
alternate strategy must be used.
"""

showing that since Ubuntu Trusty this detection behavior is not
supported any longer. Nowadays, we start both services separately and
using systemd.

Corosync starts with a simple one-node only (localhost) ring configured:

(c)rafaeldtinoco@clusterdev:~$ systemctl status corosync
● corosync.service - Corosync Cluster Engine
     Loaded: loaded (/lib/systemd/system/corosync.service; enabled; vendor 
preset: enabled)
     Active: active (running) since Thu 2020-03-19 20:16:49 UTC; 45min ago
       Docs: man:corosync
             man:corosync.conf
             man:corosync_overview
   Main PID: 851 (corosync)
      Tasks: 9 (limit: 23186)
     Memory: 125.9M
     CGroup: /system.slice/corosync.service
             └─851 /usr/sbin/corosync -f

(c)rafaeldtinoco@clusterdev:~$ sudo corosync-quorumtool
Quorum information
------------------
Date:             Thu Mar 19 21:02:21 2020
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          1
Ring ID:          1.5
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1
Flags:            Quorate

Membership information
----------------------
    Nodeid      Votes Name
         1          1 node1 (local)

AND systemd is responsible to guarantee the synchronicity needed.

----

>From pacemaker service unit:

...
After=corosync.service
Requires=corosync.service

...

# If you want Corosync to stop whenever Pacemaker is stopped,
# uncomment the next line too:
#
# ExecStopPost=/bin/sh -c 'pidof pacemaker-controld || killall -TERM corosync'

...

# Pacemaker will restart along with Corosync if Corosync is stopped while
# Pacemaker is running.
# In this case, if you want to be fenced always (if you do not want to restart)
# uncomment ExecStopPost below.
#
# ExecStopPost=/bin/sh -c 'pidof corosync || \
#              /usr/bin/systemctl --no-block stop pacemaker' 

you have different options to control behavior for start/stop and
restart accordingly with corosync status.


** Changed in: corosync (Ubuntu Focal)
       Status: Triaged => Fix Released

** Changed in: corosync (Ubuntu Eoan)
       Status: Triaged => Fix Released

** Changed in: corosync (Ubuntu Bionic)
       Status: Triaged => Fix Released

** Changed in: corosync (Ubuntu Xenial)
       Status: Triaged => Won't Fix

-- 
You received this bug notification because you are a member of Ubuntu
Server, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1586876

Title:
  Corosync report "Started" itself too early

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/corosync/+bug/1586876/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to