Ben,
Here's a test unit which reproduces this bug in 100% run. default
local-eviction-service.xml is taken with no changes. _defatlt_ region is used with
maxModes=5000. Here it is:
| public void test2() throws Exception {
| cache = new TreeCache();
| PropertyConfigurator config = new PropertyConfigurator();
| config.configure(cache, "META-INF/local-eviction-service.xml");
|
cache.setTransactionManagerLookupClass("org.jboss.cache.DummyTransactionManagerLookup");
| cache.start();
|
| for (int i = 0; i < 50; i++) {
| new Thread() {
| public void run() {
| while (true) {
| int i = (int) (Math.random() * 10000);
| try {
| cache.put("/test/node"+i, "value", new Integer(i));
| Thread.sleep(10);
| } catch (Exception e) {
| e.printStackTrace();
| }
| }
| }
| }.start();
| }
|
| while (true) {
| Node node = cache.get("/test");
| int count = node == null || node.getChildren() == null ? 0 :
node.getChildren().size();
| log.info(new Date() + " Nodes: " + count);
| Thread.sleep(1000);
| }
|
| }
|
Here is the output a get:
| configure(): attribute size: 19
| setClusterConfig(): setting cluster properties from xml to:
UDP(ip_mcast=true;ip_ttl=64;loopback=false;mcast_addr=228.1.2.3;mcast_port=45566;mcast_recv_buf_size=80000;mcast_send_buf_size=150000;ucast_recv_buf_size=80000;ucast_send_buf_size=150000):PING(down_thread=false;num_initial_members=3;timeout=2000;up_thread=false):MERGE2(max_interval=20000;min_interval=10000):FD(down_thread=true;shun=true;up_thread=true):VERIFY_SUSPECT(down_thread=false;timeout=1500;up_thread=false):pbcast.NAKACK(down_thread=false;gc_lag=50;max_xmit_size=8192;retransmit_timeout=600,1200,2400,4800;up_thread=false):UNICAST(down_thread=false;min_threshold=10;timeout=600,1200,2400;window_size=100):pbcast.STABLE(desired_avg_gossip=20000;down_thread=false;up_thread=false):FRAG(down_thread=false;frag_size=8192;up_thread=false):pbcast.GMS(join_retry_timeout=2000;join_timeout=5000;print_local_addr=true;shun=true):pbcast.STATE_TRANSFER(down_thread=false;up_thread=false)
| setEvictionPolicyConfig(): [config: null]
| interceptor chain is:
| class org.jboss.cache.interceptors.CallInterceptor
| class org.jboss.cache.interceptors.TransactionInterceptor
| cache mode is local, will not create the channel
| Starting eviction policy using the provider: org.jboss.cache.eviction.LRUPolicy
| Starting a eviction timer with wake up interval of (secs) 5
| Thu Aug 26 12:03:23 CEST 2004 Nodes: 105
| Thu Aug 26 12:03:24 CEST 2004 Nodes: 2247
| Thu Aug 26 12:03:25 CEST 2004 Nodes: 4242
| Thu Aug 26 12:03:26 CEST 2004 Nodes: 5934
| Thu Aug 26 12:03:27 CEST 2004 Nodes: 6987
| Thu Aug 26 12:03:28 CEST 2004 New eviction task started.
| run(): error processing eviction with exception:
org.jboss.cache.eviction.EvictionException: LRUAlgorith.evict(). Node not found with
this fqn: /test/node2704 will reset the eviction list.
| org.jboss.cache.eviction.EvictionException: LRUAlgorith.evict(). Node not found
with this fqn: /test/node2704
| at org.jboss.cache.eviction.LRUAlgorithm.evict(LRUAlgorithm.java:623)
| at org.jboss.cache.eviction.LRUAlgorithm.prune(LRUAlgorithm.java:565)
| at org.jboss.cache.eviction.LRUAlgorithm.process(LRUAlgorithm.java:111)
| at org.jboss.cache.eviction.EvictionTimerTask.run(EvictionTimerTask.java:70)
| at java.util.TimerThread.mainLoop(Timer.java:432)
| at java.util.TimerThread.run(Timer.java:382)
| Thu Aug 26 12:03:28 CEST 2004 Eviction task finished.
| Thu Aug 26 12:03:29 CEST 2004 Nodes: 7651
| Thu Aug 26 12:03:30 CEST 2004 Nodes: 8262
| Thu Aug 26 12:03:31 CEST 2004 Nodes: 8720
| Thu Aug 26 12:03:32 CEST 2004 Nodes: 9122
| Thu Aug 26 12:03:33 CEST 2004 Nodes: 9388
| Thu Aug 26 12:03:33 CEST 2004 New eviction task started.
| run(): error processing eviction with exception:
org.jboss.cache.eviction.EvictionException: LRUAlgorith.evict(). Node not found with
this fqn: /test/node2704 will reset the eviction list.
| org.jboss.cache.eviction.EvictionException: LRUAlgorith.evict(). Node not found
with this fqn: /test/node2704
| at org.jboss.cache.eviction.LRUAlgorithm.evict(LRUAlgorithm.java:623)
| at org.jboss.cache.eviction.LRUAlgorithm.prune(LRUAlgorithm.java:565)
| at org.jboss.cache.eviction.LRUAlgorithm.process(LRUAlgorithm.java:111)
| at org.jboss.cache.eviction.EvictionTimerTask.run(EvictionTimerTask.java:70)
| at java.util.TimerThread.mainLoop(Timer.java:432)
| at java.util.TimerThread.run(Timer.java:382)
| Thu Aug 26 12:03:33 CEST 2004 Eviction task finished.
| Thu Aug 26 12:03:34 CEST 2004 Nodes: 9548
| Thu Aug 26 12:03:35 CEST 2004 Nodes: 9648
|
|
Hint: when i change
int i = (int) (Math.random() * 10000); // creates node0...node9999
to say
int i = (int) (Math.random() * 1000000000);
it disappears.
Taking into account that maxNodes=5000 it seems that exception appears then I putting
the same node which is already exists and enlisted for eviction... something like this.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3846273#3846273
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3846273
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development