[
https://jira.jboss.org/jira/browse/JGRP-831?page=com.atlassian.jira.plugi...
]
Bela Ban commented on JGRP-831:
-------------------------------
Actually, I might be wrong: because we have NAKACK under SEQUENCER and because we have
only a single sender (the coordinator), all messages will be received in the correct order
!
We don't need to synchronize on deliver() because NAKACK will deliver messages from
the same sender sequentially !
So this might be correct after all ! More investigation needed...
SEQUENCER: incorrect order of delivery when thread pool is used
---------------------------------------------------------------
Key: JGRP-831
URL:
https://jira.jboss.org/jira/browse/JGRP-831
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.6.5, 2.7
SEQUENCER was written before the concurrent stack was added. We forgot to add a lock
(similar to NAKACK and UNICAST) to it, so currently we have unordered delivery when a
thread pool is used.
SOLUTION: acquire a lock before removing a message from the SeqnoTable and release the
lock on delivery. The lock cannot be per sender, but has to be for all the senders because
we have total (global) ordering requirements.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira