Bug 1108522

Summary: Various small fixes for RHEL 7.1 (corosync rebase)
Product: Red Hat Enterprise Linux 7 Reporter: Jan Friesse <jfriesse>
Component: corosyncAssignee: Jan Friesse <jfriesse>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: low Docs Contact:
Priority: low    
Version: 7.1CC: ccaulfie, cfeist, cluster-maint, jkortus
Target Milestone: rcKeywords: Rebase
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: corosync-2.3.4-1.el7 Doc Type: Bug Fix
Doc Text:
This BZ doesn't need Doc Text.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 08:27:05 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:
Attachments:
Description Flags
upstart: Make job conf file configurable
none
Indent: Remove space in negation of expression
none
Indent: Remove newline before else branch start
none
totemiba: Add multicast recovery
none
totemiba: Fix incorrect failed log message
none
Install doc: Correct a typo
none
Doc: Enhance INSTALL file a bit
none
systemd: Config example for corosync wd service
none
fix memory leak produced by 'corosync -v'
none
Handle SIGSEGV and SIGABRT signals
none
Fix compiler warning introduced by previous patch
none
corosync-cmapctl: Allow -p option to delete keys
none
Implement config file testing mode
none
cleanup after test-driver
none
be consistent in using CPPFLAGS vs CFLAGS
none
Slightly rework corosync-keygen.
none
totemconfig: Free ifaddrs list
none
totemconfig: totem_config_get_ip_version
none
totemconfig: refactor nodelist_to_interface func
none
corosync-keygen: Replace printf/exit call with err
none
config: Fix typos
none
Cancel token holding while in retransmition
none
quorumtool: Sort output by nodeid
none
YKD: Fix loading of YKD quorum module
none
corosync-quorumtool: add sort options
none
TODO: Remove TODO file
none
votequorum: Return current ring id in callback
none
votequorum: Add ring id to poll call
none
ipc: Process votequorum messages during sync
none
votequorum: Block sync until qdevice poll
none
testvotequorum2: Opt for polling with old ringid
none
votequorum: Make qdev timeout in sync configurable
none
Makefile: Do not install TODO file none

Description Jan Friesse 2014-06-12 07:55:41 UTC
Description of problem:
BZ is only for keep RHEL 7.1 package in sync with upstream.

Version-Release number of selected component (if applicable):
2.3.3

For QA: SanityOnly.

Comment 1 Jan Friesse 2014-06-12 07:56:42 UTC
Created attachment 907995 [details]
upstart: Make job conf file configurable

upstart: Make job conf file configurable

Signed-off-by: Kazunori INOUE <kazunori.inoue3>
Reviewed-by: Jan Friesse <jfriesse>

Comment 2 Jan Friesse 2014-06-12 07:56:47 UTC
Created attachment 907996 [details]
Indent: Remove space in negation of expression

Indent: Remove space in negation of expression

Signed-off-by: hfu <askfuhu>
Reviewed-by: Jan Friesse <jfriesse>

Comment 3 Jan Friesse 2014-06-12 07:56:52 UTC
Created attachment 907997 [details]
Indent: Remove newline before else branch start

Indent: Remove newline before else branch start

Signed-off-by: hfu <askfuhu>
Reviewed-by: Jan Friesse <jfriesse>

Comment 4 Jan Friesse 2014-06-12 07:57:01 UTC
Created attachment 907998 [details]
totemiba: Add multicast recovery

totemiba: Add multicast recovery

Totemiba wasn't able to survive SubnetManager handover or
restart. If SM was migrated to another node, corosync logged
"multicast error" and losses connectivity.

Commit should solve this situation.

Signed-off-by: Yevheniy Demchenko <zheka>
Reviewed-by: Jan Friesse <jfriesse>

Comment 5 Jan Friesse 2014-06-12 07:57:28 UTC
Created attachment 907999 [details]
totemiba: Fix incorrect failed log message

totemiba: Fix incorrect failed log message

rdma_join_multicast failed ... message parameters was swapped.

Also information about multicast join is now logged as notice.

Signed-off-by: Jan Friesse <jfriesse>

Comment 6 Jan Friesse 2014-06-12 08:03:44 UTC
Created attachment 908004 [details]
Install doc: Correct a typo

Install doc: Correct a typo

Signed-off-by: Konstantin <konstantin.ponomarenko>
Reviewed-by: Jan Friesse <jfriesse>

Comment 7 Jan Friesse 2014-06-12 13:05:30 UTC
Created attachment 908111 [details]
Doc: Enhance INSTALL file a bit

Doc: Enhance INSTALL file a bit

Some information in INSTALL file were pretty outdated. This patch moves
them closer to current release.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 9 Jan Friesse 2014-08-25 14:35:21 UTC
Created attachment 930505 [details]
systemd: Config example for corosync wd service

systemd: Config example for corosync wd service

Signed-off-by: Kazunori INOUE <kazunori.inoue3>
Reviewed-by: Jan Friesse <jfriesse>

Comment 10 Jan Friesse 2014-08-25 14:35:47 UTC
Created attachment 930506 [details]
fix memory leak produced by 'corosync -v'

fix memory leak produced by 'corosync -v'

Signed-off-by: zouyu <hopkings2005>
Reviewed-by: Jan Friesse <jfriesse>

Comment 11 Jan Friesse 2014-08-25 14:35:54 UTC
Created attachment 930507 [details]
Handle SIGSEGV and SIGABRT signals

Handle SIGSEGV and SIGABRT signals

SIGSEGV and SIGABRT signals are now correctly handled (blackbox is
dumped and logsys is finalized).

Signed-off-by: zouyu <hopkings2005>
Reviewed-by: Jan Friesse <jfriesse>

Comment 12 Jan Friesse 2014-08-25 14:36:00 UTC
Created attachment 930509 [details]
Fix compiler warning introduced by previous patch

Fix compiler warning introduced by previous patch

QB loop signal handler prototype differs from signal(2) prototype.
Solution is to create wrapper functions.

Signed-off-by: Jan Friesse <jfriesse>

Comment 13 Jan Friesse 2014-08-25 14:36:05 UTC
Created attachment 930510 [details]
corosync-cmapctl: Allow -p option to delete keys

corosync-cmapctl: Allow -p option to delete keys

Signed-off-by: Vladislav Bogdanov <bubble>
Reviewed-by: Jan Friesse <jfriesse>

Comment 14 Jan Friesse 2014-08-25 14:36:10 UTC
Created attachment 930511 [details]
Implement config file testing mode

Implement config file testing mode

Signed-off-by: Vladislav Bogdanov <bubble>
Reviewed-by: Jan Friesse <jfriesse>

Comment 15 Jan Friesse 2014-08-25 14:36:15 UTC
Created attachment 930512 [details]
cleanup after test-driver

cleanup after test-driver

update .gitignore and make maintainer-clean target

Signed-off-by: Fabio M. Di Nitto <fdinitto>
Reviewed-by: Jan Friesse <jfriesse>

Comment 16 Jan Friesse 2014-08-25 14:36:20 UTC
Created attachment 930513 [details]
be consistent in using CPPFLAGS vs CFLAGS

be consistent in using CPPFLAGS vs CFLAGS

Signed-off-by: Fabio M. Di Nitto <fdinitto>
Reviewed-by: Jan Friesse <jfriesse>

Comment 17 Jan Friesse 2014-08-25 14:36:24 UTC
Created attachment 930514 [details]
Slightly rework corosync-keygen.

Slightly rework corosync-keygen.

Allow it to create keyfile not in the hardcoded location.
Drop root checks.
Minor cosmetic fixes to the man-page.

Signed-off-by: Vladislav Bogdanov <bubble>
Reviewed-by: Jan Friesse <jfriesse>

Comment 18 Jan Friesse 2014-08-25 14:36:29 UTC
Created attachment 930515 [details]
totemconfig: Free ifaddrs list

totemconfig: Free ifaddrs list

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Fabio M. Di Nitto <fdinitto>

Comment 19 Jan Friesse 2014-08-25 14:36:34 UTC
Created attachment 930516 [details]
totemconfig: totem_config_get_ip_version

totemconfig: totem_config_get_ip_version

Add totem_config_get_ip_version to get user configured ip version.
Make totem_config_read use this newly introduced function.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Fabio M. Di Nitto <fdinitto>

Comment 20 Jan Friesse 2014-08-25 14:36:39 UTC
Created attachment 930517 [details]
totemconfig: refactor nodelist_to_interface func

totemconfig: refactor nodelist_to_interface func

Move finding of bindaddr in nodelist to generally usable function
totem_config_find_local_addr_in_nodelist and refactor
config_convert_nodelist_to_interface function to use it.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Fabio M. Di Nitto <fdinitto>

Comment 21 Jan Friesse 2014-08-25 14:36:44 UTC
Created attachment 930518 [details]
corosync-keygen: Replace printf/exit call with err

corosync-keygen: Replace printf/exit call with err

Calling of err makes code shorter, easier to read and eliminates
problems with forgotten newline characters.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 22 Jan Friesse 2014-08-25 14:36:50 UTC
Created attachment 930519 [details]
config: Fix typos

config: Fix typos

Fix several places where 'then' is used instead of 'than' in error
messages and a comment.

Signed-off-by: Christine Caulfield <ccaulfie>
Reviewed-by: Jan Friesse <jfriesse>

Comment 23 Jan Friesse 2014-08-25 14:40:03 UTC
Created attachment 930527 [details]
Cancel token holding while in retransmition

Cancel token holding while in retransmition

When there is no other activty on ring but only retransmition, and
token is in hold mode, the retransmition will become slow. More over,
if the retransmition is always fail but token rotation works well, then
it takes quite a lone time
(fail_to_recv_const * token_hold = 2500 * 180ms = 450sec) for the
retransmit requester to meet the "FAILED TO RECEIVE" condition to
re-construct a new ring.

This problem can be solved by checking if retransmits are present
before going into hold. If a node is the retransmit requester or
the resender, it set my_token_held to 0 to speed up retransmition
and omit further unnecessary sending of token_hold_cancel signal.

Signed-off-by: Jason HU <huzhijiang>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 24 Jan Friesse 2014-08-25 14:40:12 UTC
Created attachment 930528 [details]
quorumtool: Sort output by nodeid

quorumtool: Sort output by nodeid

corosync-quorumtool prints the node listing by IP address
(as passed back to it from corosync) but this can be
counter-intuitive if the node IDs aren't in the same
order as the IP addresses. This patch sorts the nodes
by node ID so that the output is easier for humans to
parse.

Signed-off-by: Christine Caulfield <ccaulfie>
Reviewed-By: Jan Friesse <jfriesse>

Comment 25 Jan Friesse 2014-08-25 14:40:18 UTC
Created attachment 930529 [details]
YKD: Fix loading of YKD quorum module

YKD: Fix loading of YKD quorum module

Although YKD is currently unsupported, untested and decprecated it's
handy for testing things in the quorum module.

This patch allows YKD to actually load without an error. It does not fix
anything else in the service!

Also remove vsftype and its reference to YKD being the preferred and
default provider from the corosync.conf man page,
as that hasn't been true for a considerable time.

Signed-off-by: Christine Caulfield <ccaulfie>
Reviewed-by: Jan Friesse <jfriesse>

Comment 26 Jan Friesse 2014-08-25 14:40:22 UTC
Created attachment 930530 [details]
corosync-quorumtool: add sort options

corosync-quorumtool: add sort options

Adds a -o<a|i|n> option to corosync-votequorum so that the nodes list
can be sorted by Address, node Id or Name. The default remains IP
address.

Signed-Off-By: Christine Caulfield <ccaulfie>
Reviewed-by: Jan Friesse <jfriesse>

Comment 27 Jan Friesse 2014-08-25 14:40:26 UTC
Created attachment 930531 [details]
TODO: Remove TODO file

TODO: Remove TODO file

TODO file has many problems like it's not updated regularly, it's not
updated at all in already distributed tarballs, ...

All relevant RFEs were filled at github as issues with flag "TODO file
convert" so file can finally be removed from git.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 28 Jan Friesse 2014-08-25 14:43:31 UTC
Created attachment 930535 [details]
votequorum: Return current ring id in callback

votequorum: Return current ring id in callback

Returning ring id will be used in poll function.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 29 Jan Friesse 2014-08-25 14:43:35 UTC
Created attachment 930536 [details]
votequorum: Add ring id to poll call

votequorum: Add ring id to poll call

If votequorum service receives incorrect (not current) ringid, call is
ignored and CS_ERR_MESSAGE_ERROR is returned.

This and previous commits makes incompatible changes in votequorum
API/ABI, so library version is increased.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 30 Jan Friesse 2014-08-25 14:43:38 UTC
Created attachment 930537 [details]
ipc: Process votequorum messages during sync

ipc: Process votequorum messages during sync

This is needed for qdevice to be able to process messages during
synchronization phase.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 31 Jan Friesse 2014-08-25 14:43:42 UTC
Created attachment 930538 [details]
votequorum: Block sync until qdevice poll

votequorum: Block sync until qdevice poll

If qdevice is registered a alive, corosync waits in sync phase until
timeout expires or qdevice votes with correct nodeid parameter.

This gives qdevice time to decide to vote or not undisturbed and without
time hazard.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 32 Jan Friesse 2014-08-25 14:43:46 UTC
Created attachment 930539 [details]
testvotequorum2: Opt for polling with old ringid

testvotequorum2: Opt for polling with old ringid

Option -F is added to force sending old ringid for given number of
times. Option is useful for testing failure scenario during corosync
synchronization phase.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 33 Jan Friesse 2014-08-25 14:43:49 UTC
Created attachment 930540 [details]
votequorum: Make qdev timeout in sync configurable

votequorum: Make qdev timeout in sync configurable

Configuration option quorum.device.sync_timeout is available for setting
qdevice poll timeout for synchronization phase. Default value is 30
sec.

Signed-off-by: Jan Friesse <jfriesse>
Reviewed-by: Christine Caulfield <ccaulfie>

Comment 34 Jan Friesse 2014-08-26 15:00:48 UTC
Created attachment 931024 [details]
Makefile: Do not install TODO file

Makefile: Do not install TODO file

Signed-off-by: Jan Friesse <jfriesse>

Comment 38 errata-xmlrpc 2015-03-05 08:27:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0365.html