Bug 901536 - Corosync 1.4.1 does not support IPv6 double colon notation in /etc/corosync/corosync.conf totem section
Summary: Corosync 1.4.1 does not support IPv6 double colon notation in /etc/corosync/c...
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Corosync Cluster Engine
Classification: Retired
Component: totem
Version: 1.4
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jan Friesse
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 906432
TreeView+ depends on / blocked
 
Reported: 2013-01-18 12:46 UTC by Martijn Schmidt
Modified: 2013-01-31 16:00 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 906432 (view as bug list)
Environment:
Last Closed: 2013-01-31 15:59:33 UTC
Embargoed:


Attachments (Terms of Use)
Working IPv6 UDPU corosync.conf (923 bytes, application/octet-stream)
2013-01-18 12:46 UTC, Martijn Schmidt
no flags Details

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.


Note You need to log in before you can comment on or make changes to this bug.