1. 30 Mar, 2020 2 commits
  2. 04 Jan, 2020 5 commits
  3. 07 Dec, 2019 8 commits
  4. 18 Nov, 2019 2 commits
  5. 08 Nov, 2019 1 commit
  6. 17 Oct, 2019 1 commit
  7. 09 Oct, 2019 3 commits
  8. 10 Sep, 2019 1 commit
  9. 27 Aug, 2019 1 commit
  10. 25 Aug, 2019 9 commits
  11. 30 Jul, 2019 1 commit
  12. 15 Jul, 2019 1 commit
    • Jan Friesse's avatar
      totem: Increase ring_id seq after load · 3675dace
      Jan Friesse authored
      
      
      This patch handles the situation where the leader
      node (the node with lowest node_id) crashes and is started again
      before token timeout of the rest of the cluster.
      The newly restarted node restores the ringid of the old ring from
      stable storage, so it has the same ringid as rest of the nodes,
      but ARU is zero. If the node is able to create a singleton membership
      before receiving the joinlist from rest of the cluster,
      everything works as expected, because the ring id gets increased
      correctly.
      
      But if the node receives a joinlist from another cluster node before
      its own joinlist, then it continues as it would had it never left
      the cluster. This is not correct, because the new node should always
      create a singleton configuration first.
      
      During the recovery phase, ARUs are compared and because they differ
      (the ARU of the old leader node is 0), the other nodes
      try to sent all of their previous messages. This is impossible
      (even if it was correct), because other nodes have already freed most
      of those messages. The implementation uses an assert to limit maximum
      number of messages sent during recovery (we could fix this,
      but it's not really the point).
      
      The solution here is to increase the ring_id sequence number by 1 after
      loading it from storage. During creation of the commit token it is
      always increased by 4, so it will not collide with an existing
      sequence.
      
      Thanks Christine Caulfield <ccaulfie@redhat.com> for clarify commit
      message.
      
      Signed-off-by: default avatarJan Friesse <jfriesse@redhat.com>
      Reviewed-by: default avatarChristine Caulfield <ccaulfie@redhat.com>
      3675dace
  13. 08 Jul, 2019 3 commits
    • Jan Friesse's avatar
      init: Use cpgtool instead of cfgtool · 0d1a1b13
      Jan Friesse authored
      
      
      Init script used to use corosync-cfgtool -s to wait till
      corosync accepts ipc connection. Problem with this approach
      is that error code is returned not only if ipc cannot be initialized,
      but also when one of the ring is marked as failed, making corosync
      service not to start. Corosync with one failed ring can work just
      fine and there is no need to fail startup.
      
      Patch is changing call of corosync-cfgtool to corosync-cpgtool. Also to
      make spotting of broken ring easier, corosync-cfgtool -s is called after
      successful return of the cpgtool, and warning is issued if cfgtool
      fails.
      
      Signed-off-by: default avatarJan Friesse <jfriesse@redhat.com>
      Reviewed-by: default avatarChristine Caulfield <ccaulfie@redhat.com>
      0d1a1b13
    • Jan Friesse's avatar
      notifyd: Fix warning produced by 32-bit compiler · 257a4fd3
      Jan Friesse authored
      
      
      time_t is platform dependent real type which is usually long int on
      64-bit platform, but only int on 32-bit platform and printing it with
      %ld generated warning.
      
      Solution seems to be ether retype time_t to long int or use functions
      which works with time_t. Later option is used in this patch, which uses
      localtime and strftime to print time_t value.
      
      Also code is refactored to remove duplicate calls and add _cs_snmp
      prefix to prevent snmp_ prefix collision.
      
      Signed-off-by: default avatarJan Friesse <jfriesse@redhat.com>
      Reviewed-by: default avatarChristine Caulfield <ccaulfie@redhat.com>
      257a4fd3
    • Jan Friesse's avatar
      cfgtool: Remove unused code · d7f5478b
      Jan Friesse authored
      
      
      corosync_cfg_ring_status_get returns string status, which is always OK
      for UDP(U) and detailed status for Knet transport. Previously also
      FAULTY status was returned for UDP(U) and cfgtool used to return error
      code back to shell when one of the interfaces was faulty.
      
      Because FAULTY is now not returned, it's not needed to have code for
      handling it.
      
      Also man page was misleading, so it is fixed too.
      
      Signed-off-by: default avatarJan Friesse <jfriesse@redhat.com>
      Reviewed-by: default avatarChristine Caulfield <ccaulfie@redhat.com>
      d7f5478b
  14. 03 Jul, 2019 1 commit
  15. 02 Jul, 2019 1 commit