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

Signed-off-by: Jan Friesse <[email protected]>
---
 exec/ipc_glue.c           |    9 ++++++++-
 man/votequorum_overview.8 |    9 +++++++++
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/exec/ipc_glue.c b/exec/ipc_glue.c
index 355248a..79ee4df 100644
--- a/exec/ipc_glue.c
+++ b/exec/ipc_glue.c
@@ -702,7 +702,14 @@ static void cs_ipcs_check_for_flow_control(void)
                         * now check flow control
                         */
                        if (ipc_fc_totem_queue_level != TOTEM_Q_LEVEL_CRITICAL 
&&
-                               ipc_fc_sync_in_process == 0) {
+                           ipc_fc_sync_in_process == 0) {
+                               fc_enabled = QB_FALSE;
+                       } else if (ipc_fc_totem_queue_level != 
TOTEM_Q_LEVEL_CRITICAL &&
+                           i == VOTEQUORUM_SERVICE) {
+                               /*
+                                * Allow message processing for votequorum 
service even
+                                * in sync phase
+                                */
                                fc_enabled = QB_FALSE;
                        } else {
                                fc_enabled = QB_IPCS_RATE_OFF_2;
diff --git a/man/votequorum_overview.8 b/man/votequorum_overview.8
index bad4ecb..cd9f766 100644
--- a/man/votequorum_overview.8
+++ b/man/votequorum_overview.8
@@ -56,6 +56,15 @@ The library provides a mechanism to:
 .PP
 * Connect an additional quorum device to allow small clusters to remain 
quorate during node outages.
 .PP
+.SH VIRTUAL SYNCHRONY
+Votequorum is only one service where communication with library is allowed 
during synchronization
+phase. This makes possible for quorum device to react to membership change and 
decide to vote or
+not without timing hazard, because corosync stands in synchronization phase 
until qdevice on all
+nodes vote or timeout expires.
+
+As a side effect, extended virtual synchrony is broken for votequorum service. 
This means, that
+messages sent during synchronization phase can be delivered sooner then 
messages sent right
+before sync phase began. This applies also for local messages.
 .SH BUGS
 No known bugs at the time of writing. The authors are from outerspace. Deal 
with it.
 .SH "SEE ALSO"
-- 
1.7.1

_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to