ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-3955) IgniteCache.invokeAll returns empty result set in ATOMIC cache
Date Tue, 22 Nov 2016 08:12:58 GMT

     [ https://issues.apache.org/jira/browse/IGNITE-3955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Vladimir Ozerov updated IGNITE-3955:
------------------------------------
    Fix Version/s:     (was: 1.8)
                   2.0

> 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
>            Assignee: Konstantin Dudkov
>             Fix For: 2.0
>
>
> 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, Integer> cache = 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<Integer>> res
=
>                         cache.invokeAll(keys, new CacheEntryProcessor<String, Integer,
Integer>() {
>                             @Override
>                             public Integer process(MutableEntry<String, Integer>
entry,
>                                 Object... objects) throws EntryProcessorException {
>                                 Integer val = entry.getValue();
>                                 if (val == null)
>                                     val = 0;
>                                 val++;
>                                 entry.setValue(val);
>                                 return val;
>                             }
>                         });
>                     assertEquals(1, res.size());
>                 }
>             }
>         }, threadCnt, "testInvokeAllMultithreaded");
>         assertEquals(cnt*threadCnt, (int)cache.get("myKey"));
>     }
> {code}
> Run this test as part of GridCacheAtomicFullApiSelfTest.java.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message