- BZ#677583
Prior to this update, the corosync-blackbox command could, under certain circumstances, produce a backtrace in the output and consequently terminate with a segmentation fault. With this update, Corosync creates correct fdata files and also corosync-fplay is more resistant when dealing with incorrect fdata files.
- BZ#677583
Prior to this update, cpg did not use the "left_nodes" field in the downlist message. As a consequence, a node could miss a configuration change and report larger old_members than expected if one node was paused. This update modifies the downlist so that the "left_nodes" field is used. Now, the membership events are correct.
- BZ#692620
Prior to this update, cpg did not use the "left_nodes" field in the downlist message. As a consequence, a node could miss a configuration change and report larger old_members than expected if one node was paused. This update modifies the downlist so that the "left_nodes" field is used. Now, the membership events are correct.
- BZ#696883
Prior to this update, running Corosync could cause a segmentation fault on multiple nodes when executed via CMAN. This update modifies the code so that executing Corosync via CMAN no longer causes segmentation faults with the pacemaker test suite.
- BZ#696887
Prior to this update, the reference counting on the configuration server in Corosync was incorrect. As a consequence, terminating the corosync-cfgtool -r command before completing caused a segmentation fault. This update adds the correct reference counting for each architecture. Now, Corosync no longer encounters segmentation faults in this situation.
- BZ#707860
Prior to this update, Corosync could terminate with a segmentation fault if it ran out of available open files. This update handles the maximum number of open files more gracefully. Now, Corosync no longer crashes when going over open file limits.
- BZ#707867
Prior to this update, corosync-objctl could not create a new object/key and display double or float values. This update adds float and double support to corosync-objctl. Now, corosync-objctl can display object values with double or float types.
- BZ#707873
Prior to this update, Corosync could terminate with a segmentation fault if it encountered a negative value for the message type on systems where char is signed. This update improves the check of the message type for incoming messages.
- BZ#707875
Prior to this update, an error message was wrongly displayed if files in the service.d directory differed from the service key. With this update, Corosync longer checks for sub parameters in files in the service.d directory. Now, files in service.d directory can contain every possible configuration option.
- BZ#709758
Prior to this update, Corosync used a spinlock around I/O operations. As a consequence, Corosync consumed an extremely high portion of the central processing unit (CPU) when running a large amount of inter-process communication (IPC) operations because the spinlocks would spin during I/O. This update replaces the spinlock with a mutual exclusion (mutex), which releases the processor from spinning but enforces correct behavior.
- BZ#712115
Prior to this update, an incorrect mutex in the internal confdb data storage system could, under certain circumstances, cause Corosync to terminate with a segmentation fault. This update corrects the mutex and objdb API iteration no longer causes Corosync to terminate with a segmentation fault.
- BZ#712188
Prior to this update, Corosync became locked with contrived test cases when the tracking functionality of the internal object database was enabled if it was under heavy load. This update modifies Corosync so that the tracking functionality under heavy load no longer causes Corosync to lock up.
- BZ#725058
Prior to this update, retransmit list errors could occur on slower hardware due to high multicast traffic and slow CPU usage. This update processes the multicast buffer queue more frequently and retransmit errors are now less probable.
- BZ#732698
Prior to this update, Corosync sometimes terminated unexpectedly when Corosync ran the cman_tool join and cman_tool leave commands in a loop. This update modifies the code so that no more segmentation faults occur in such situations.