[jboss-jira] [JBoss JIRA] (JGRP-1674) STOP_FLUSH race condition in 2.x
Dennis Reed (JIRA)
jira-events at lists.jboss.org
Mon Sep 23 14:10:45 EDT 2013
[ https://issues.jboss.org/browse/JGRP-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806668#comment-12806668 ]
Dennis Reed commented on JGRP-1674:
-----------------------------------
Fixed in commit f886837ab31cc944a33ce5fa5d04caa4347db730 on Branch_JGroups_2_6 by resetting the promise in JChannel#connect() before waiting on it.
In master the problem code was rewritten.
There is a similar bug in FLUSH (with worse effects) https://issues.jboss.org/browse/JGRP-1682
> STOP_FLUSH race condition in 2.x
> --------------------------------
>
> Key: JGRP-1674
> URL: https://issues.jboss.org/browse/JGRP-1674
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 2.6.21
> Reporter: Dennis Reed
> Assignee: Dennis Reed
> Attachments: JGRP-1674-test.zip
>
>
> There is a race condition in STOP_FLUSH when a node joins the cluster.
> JOINER sends JOIN_REQ to MASTER
> MASTER does a flush on the existing members (does NOT include JOINER)
> MASTER sends JOIN_RSP
> MASTER sends STOP_FLUSH
> JOINER receives JOIN_RSP
> JOINER fetches state, sends START_FLUSH
> JOINER receives STOP_FLUSH from MASTER (does not apply, since JOINER was not part of the original FLUSH)
> onStopFlush never verifies that the current node was part of the FLUSH, and therefore is valid for the current node.
> This STOP_FLUSH corrupts JOINER's FLUSH by resetting all the member variables (and probably unblocking as well).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list