Alexey Goncharuk created IGNITE-5227: ----------------------------------------
Summary: 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 Priority: Critical Fix For: 2.1 A simple test reproducing this error: {code} /** * @throws Exception if failed. */ public void testBatchUnlock() throws Exception { startGrid(0); 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 (v6.3.15#6346)