[jboss-jira] [JBoss JIRA] Created: (JGRP-425) Incorrect state transfer in high contention scenarios

Bela Ban (JIRA) jira-events at lists.jboss.org
Wed Feb 28 09:58:16 EST 2007


Incorrect state transfer in high contention scenarios
-----------------------------------------------------

                 Key: JGRP-425
                 URL: http://jira.jboss.com/jira/browse/JGRP-425
             Project: JGroups
          Issue Type: Bug
    Affects Versions: 2.4
            Reporter: Bela Ban
         Assigned To: Bela Ban
             Fix For: 2.5


State transfer (with digests) works as follows:
- State is requested from a provider
- Provider (1) gets the digest from NAKACK (below) and then (2) the application state from the channel (above)
- Between (1) and (2), some multicast message received can alter the state, as follows:
  - Multicast message M is received
  - At the same time, a state request is received
  - To handle the state request, we ask NAKACK for the digest
  - The digest contains M
  - Now - before M is passed up - the digest is returned to STATE_TRANSFER and we fetch the state 
    *WITHOUT* M ! When the state requester gets the state&digest, it will reject a resent M because it thinks
    it is in its state (because it is in its digest), however M is not part of the state !

Other issue:
- M is received after the digest has been retrieved by STATE_TRANSFER, but then M passes the state transfer and is received by the channel and applied to the state *before* the state request can fetch the state. Now M is *not* part of the digest, but it *is* part of the state !

SOLUTION:
- When getting the digest, set a flag (in NAKACK) such that all subsequent multicast up-messages are blocked (or add them into a bounded FIFO list)
- Fetch the state from the channel (the application)
- Unblock NAKACK (send down an UNBLOCK event)
- Return the state&digest to the state requester

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list