https://issues.apache.org/bugzilla/show_bug.cgi?id=46384

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #23501|0                           |1
        is obsolete|                            |

--- Comment #5 from Mark Thomas <ma...@apache.org> 2009-09-13 19:14:42 BST ---
Created an attachment (id=24253)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=24253)
Updated patch for this issue

I found the time to take another look at this.

Whilst Filip's comment about threads locking up is correct - and Tomcat 6 does
have a fix for that - threads locking up is not at the root of this issue. At
the root of this issue is there there are two lists of cluster members. One in
McastServiceImpl.membership and one in ReplicationTransmitter.map

Whilst checkExpire() does update both lists with the sync on expiredMutex, the
receiver thread updates the McastServiceImpl.membership outside of this mutex.
That leads to the problem that the OP is describing here.

Whilst Tomcat 6 does contain a fix for this, the code bases have diverged
sufficiently that the fix would be invasive. Therefore I am proposing a patch
for Tomcat that is similar to my earlier patch but has a slightly wider sync
block based on my better understanding of this issue.

I have tested the patch and whilst I can force this issue using a debugger
without the patch, I can not force it with the patch in place.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to