[
https://jira.jboss.org/jira/browse/JBAS-5923?page=com.atlassian.jira.plug...
]
Galder Zamarreno commented on JBAS-5923:
----------------------------------------
Quick tip for anyone debugging issues in weak hash maps:
- if key,value pairs are dissapearing from weak hashmap, there can be two culprits:
- 1. key is being garbage collected -> you can figure whether this is the culprit
using
System.identifyHashCode(Object) or using
org.jboss.util.Strings.defaultToString(Object)
- 2. the map is not properly synchronised and during resizing k,v pairs disappear.
Weak hash map usage in UnifiedInvokerHAProxy is not thread safe
---------------------------------------------------------------
Key: JBAS-5923
URL:
https://jira.jboss.org/jira/browse/JBAS-5923
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Clustering, Transaction Manager (JBossTM)
Affects Versions: JBossAS-5.0.0.CR1, JBossAS-4.2.3.GA
Reporter: Galder Zamarreno
Assignee: Galder Zamarreno
Fix For: JBossAS-5.0.0.CR2, JBossAS-4.2.4.GA
txFailoverAuthorizations weak hashmap that is now also used for
maintaining transaction stickyness was created as an unsynchronized
WeakHashMap and this was causing issues.
It was not enough to synchronise on the tpc (key of map) whenever
we manipulated it because two threads, trying to store different tpcs
could end up trying to resize the map and as a result, key value
pairs could easily dissapear from the hash map.
This is extremely confusing because we thought the disappearance
was due to garbage collection.
From now on, we'll be using a Collections.synchronizedMap(new WeakHashMap());
instead. Thanks to Adrian for the help debugging this.
--
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