Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 901536

Summary: Corosync 1.4.1 does not support IPv6 double colon notation in /etc/corosync/corosync.conf totem section
Product: [Retired] Corosync Cluster Engine Reporter: Martijn Schmidt <martijn.schmidt>
Component: totemAssignee: Jan Friesse <jfriesse>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: 1.4CC: asalkeld, jfriesse, martijn.schmidt, sdake
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 906432 (view as bug list) Environment:
Last Closed: 2013-01-31 15:59:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 906432    
Attachments:
Description Flags
Working IPv6 UDPU corosync.conf none

Description Martijn Schmidt 2013-01-18 12:46:43 UTC
Created attachment 682396 [details]
Working IPv6 UDPU corosync.conf

Description of problem:
Corosync 1.4.1 does not support IPv6 double colon notation in /etc/corosync/corosync.conf totem section, starts successfully according to logs but fails to start the actual service.

Version-Release number of selected component (if applicable):
[root@ns4 corosync]# corosync -v
Corosync Cluster Engine, version '1.4.1'
Copyright (c) 2006-2009 Red Hat, Inc.

How reproducible:
Always.

Steps to Reproduce:
1. Use an IPv6 memberaddr and bindaddr, with double colon notation to shorten the address, in /etc/corosync/corosync.conf's totem section.

2. service corosync start

3. Watch the service fail to come up, check logs to see incomplete startup sequence.
  
Actual results (with double colon notation):

==================================================================
[root@ns4 corosync]# service corosync start
Starting Corosync Cluster Engine (corosync):               [FAILED]

Meanwhile, in /var/log/cluster/corosync.log:

Jan 18 11:39:42 corosync [MAIN  ] Corosync Cluster Engine ('1.4.1'): started and ready to provide service.
Jan 18 11:39:42 corosync [MAIN  ] Corosync built-in features: nss dbus rdma snmp
Jan 18 11:39:42 corosync [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
Jan 18 11:39:42 corosync [TOTEM ] Initializing transport (UDP/IP Unicast).
Jan 18 11:39:42 corosync [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
==================================================================

Expected results (as seen without double colon notation):

==================================================================
[root@ns4 corosync]# service corosync start
Starting Corosync Cluster Engine (corosync):               [  OK  ]

Jan 18 13:37:17 corosync [MAIN  ] Corosync Cluster Engine ('1.4.1'): started and ready to provide service.
Jan 18 13:37:17 corosync [MAIN  ] Corosync built-in features: nss dbus rdma snmp
Jan 18 13:37:17 corosync [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
Jan 18 13:37:17 corosync [TOTEM ] Initializing transport (UDP/IP Unicast).
Jan 18 13:37:17 corosync [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
Jan 18 13:37:17 corosync [TOTEM ] The network interface is down.
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync extended virtual synchrony service
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync configuration service
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync cluster closed process group service v1.01
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync cluster config database access v1.01
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync profile loading service
Jan 18 13:37:17 corosync [SERV  ] Service engine loaded: corosync cluster quorum service v0.1
Jan 18 13:37:17 corosync [MAIN  ] Compatibility mode set to whitetank.  Using V1 and V2 of the synchronization engine.
==================================================================

Additional info:

Attached is the corosync.conf that works. To make it fail, replace fc00:1c7:da7a:3:0:0:0:0 with fc00:1c7:da7a:3:: and repeat this for every other IPv6 address in the config.

I've also tried running this with debug: on, but no extra log messages were dumped.

Comment 1 Jan Friesse 2013-01-31 14:23:21 UTC
Hi,
thanks for bug report. This is problem in corosync parser, which removes trailing ::, so address will end up being fc00 (what is invalid IPv6 address and is handles as dns name).

Comment 2 Jan Friesse 2013-01-31 15:59:33 UTC
Problem is now fixed in upstream as c04af91ada3c4ca29643cad599ed5605f6bb10bd. There is also another problem in parsing with extra close brace. This is fixed by 60a9f809c17d6cfe73c34263233dbf8e4677d6b5.

Thanks again for BZ, closing as upstream.