Pavel Tupitsyn created IGNITE-3955:

             Summary: IgniteCache.invokeAll returns empty result set in ATOMIC 
                 Key: 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 

This happens with ATOMIC cache, but not with TRANSACTIONAL.

To reproduce, paste the following into

    public void testInvokeAllMultithreaded() throws Exception {
        final IgniteCache<String, Long> cache = (IgniteCache<String, 
        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 

                    assertEquals(1, res.size());
        }, threadCnt, "testInvokeAllMultithreaded");

        assertEquals(cnt*threadCnt, (long)cache.get("myKey"));

Run this test as part of

This message was sent by Atlassian JIRA

Reply via email to