]
Manik Surtani commented on ISPN-1466:
-------------------------------------
Hmm, if GET #1 goes to node A as well, then unless it is evicted from memory, then it
should be picked up. Does this only happen under load? Can it be reliably reproduced?
Async configuration tag affects communication between cache and
HotRod client
-----------------------------------------------------------------------------
Key: ISPN-1466
URL:
https://issues.jboss.org/browse/ISPN-1466
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.1.0.ALPHA1, 5.1.0.BETA1
Reporter: Martin Gencur
Assignee: Manik Surtani
Fix For: 5.2.0.FINAL
When using a REPL (replicated) cache with configuration tag <async
useReplQueue="true" replQueueMaxElements="3"
replQueueInterval="1000" />, HotRod client cannot see a cache entry which was
just stored into a cache. The entry is visible not before the replication queue is flushed
(either because of MaxElements limit or QueueInterval). I'll attach a testcase but
here's a test snippet that fails at first assert:
{code}
@Test
public void testQueueSize() throws Exception {
RemoteCache<String, String> asyncCache1 = rcm1.getCache(asyncCacheSize);
RemoteCache<String, String> asyncCache2 = rcm2.getCache(asyncCacheSize);
asyncCache1.clear();
asyncCache1.put("k1", "v1");
assertTrue(null != asyncCache1.get("k1"));
assertTrue(null == asyncCache2.get("k1"));
asyncCache1.put("k2", "v2");
//k3 fills up the queue -> flush
asyncCache1.put("k3", "v3");
Thread.sleep(1000); //wait for the queue to be flushed
assertTrue(null != asyncCache1.get("k1"));
assertTrue(null != asyncCache2.get("k1"));
}
{code}
IMO when I have cache A and B in a cluster and the cache entry is stored into the cache
A, it should be visible at A and not in B. After flushing the queue it should be visible
also at B.
Here's the test:
https://svn.devel.redhat.com/repos/jboss-qa/edg/infinispan-functional-tes...
(to run it, one has to install infinispan-arquillian-container into local maven
repository, and run "mvn clean verify -Dnode0.ispnhome=${server1.home}
-Dnode1.ispnhome=${server2.home}", e.g. mvn clean verify
-Dnode0.ispnhome=/home/mgencur/Java/infinispan/infinispan-5.1.0.BETA1
-Dnode1.ispnhome=/home/mgencur/Java/infinispan/infinispan-5.1.0.BETA1-2
)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: