Pavel Tupitsyn created IGNITE-3955: -------------------------------------- Summary: IgniteCache.invokeAll returns empty result set in ATOMIC cache Key: IGNITE-3955 URL: https://issues.apache.org/jira/browse/IGNITE-3955 Project: Ignite Issue Type: Bug Components: cache Affects Versions: 1.7 Reporter: Pavel Tupitsyn Fix For: 1.8
When entry processor is invoked from multiple threads, result set is sometimes empty. This happens with ATOMIC cache, but not with TRANSACTIONAL. To reproduce, paste the following into GridCacheAbstractFullApiSelfTest.java: {code} public void testInvokeAllMultithreaded() throws Exception { final IgniteCache<String, Long> cache = (IgniteCache<String, Long>)(IgniteCache)jcache(); final int threadCnt = 4; final int cnt = 90000; final Set<String> keys = Collections.singleton("myKey"); GridTestUtils.runMultiThreaded(new Runnable() { @Override public void run() { for (int i = 0; i < cnt; i++) { final Map<String, EntryProcessorResult<Long>> res = cache.invokeAll(keys, new PlatformDotNetEntityFrameworkIncreaseVersionProcessor()); assertEquals(1, res.size()); } } }, threadCnt, "testInvokeAllMultithreaded"); assertEquals(cnt*threadCnt, (long)cache.get("myKey")); } {code} Run this test as part of GridCacheAtomicFullApiSelfTest.java. -- This message was sent by Atlassian JIRA (v6.3.4#6332)