[ https://issues.apache.org/jira/browse/IGNITE-5227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy Pavlov updated IGNITE-5227: ----------------------------------- Fix Version/s: 2.8 > StackOverflowError in GridCacheMapEntry#checkOwnerChanged() > ----------------------------------------------------------- > > Key: IGNITE-5227 > URL: https://issues.apache.org/jira/browse/IGNITE-5227 > Project: Ignite > Issue Type: Bug > Affects Versions: 1.6 > Reporter: Alexey Goncharuk > Assignee: Stepachev Maksim > Priority: Critical > Fix For: 2.8 > > Time Spent: 40m > Remaining Estimate: 0h > > A simple test reproducing this error: > {code} > /** > * @throws Exception if failed. > */ > public void testBatchUnlock() throws Exception { > startGrid(0); > grid(0).createCache(new CacheConfiguration<Integer, > Integer>(DEFAULT_CACHE_NAME) > .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)); > try { > final CountDownLatch releaseLatch = new CountDownLatch(1); > IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new > Callable<Object>() { > @Override public Object call() throws Exception { > IgniteCache<Object, Object> cache = grid(0).cache(null); > Lock lock = cache.lock("key"); > try { > lock.lock(); > releaseLatch.await(); > } > finally { > lock.unlock(); > } > return null; > } > }); > Map<String, String> putMap = new LinkedHashMap<>(); > putMap.put("key", "trigger"); > for (int i = 0; i < 10_000; i++) > putMap.put("key-" + i, "value"); > IgniteCache<Object, Object> asyncCache = > grid(0).cache(null).withAsync(); > asyncCache.putAll(putMap); > IgniteFuture<Object> resFut = asyncCache.future(); > Thread.sleep(1000); > releaseLatch.countDown(); > fut.get(); > resFut.get(); > } > finally { > stopAllGrids(); > } > {code} > We should replace a recursive call with a simple iteration over the linked > list. -- This message was sent by Atlassian Jira (v8.3.2#803003)