]
Manik Surtani commented on JBCACHE-794:
---------------------------------------
1 is unfeasible as it can get very, very big in some cases. There is another feature
request somewhere (JBCACHE-684) to make this limit configurable.
Eviction Queue hard limit can cause deadlocks
---------------------------------------------
Key: JBCACHE-794
URL:
http://jira.jboss.com/jira/browse/JBCACHE-794
Project: JBoss Cache
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 1.4.0.SP1
Reporter: Owen Taylor
Assigned To: Manik Surtani
Fix For: 2.0.0, 1.4.0.SP2
if the eviction queue fills up, you can get the situation where:
- The eviction queue processing task calls evict() which needs to get a write lock on a
node
- A different thread has a read lock on that node and is blocking to put something into
the eviction queue
Once this starts happening the evication queue thread is procesing events *very* slowly
because
it repeatedly stalls while the lock times out, so the queue will stay full.
Without digging into the code too much, possible fixes that occur to me include:
1) Don't have a hard limit on the size of the eviction queue, and just warn when it
gets too big
2) Use a timeout of 0 when trying to get the write lock to evict a node, after all, if a
node is
locked when we try to evict it, it probably shouldn't be evicted anyways.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: