From: jsimomaa Date: Mon, 25 Nov 2019 07:00:08 +0000 (+0200) Subject: Trying to debug why LRU swap can be stuck in livelock X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F12%2F3612%2F1;p=simantics%2Fplatform.git Trying to debug why LRU swap can be stuck in livelock gitlab #424 Change-Id: I7e933284969cebba28d36b25c1cdd51c0e49106d --- diff --git a/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRU.java b/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRU.java index b9ba72121..205b79906 100644 --- a/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRU.java +++ b/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRU.java @@ -293,8 +293,19 @@ public class LRU> { if(valueToSwap.tryAcquireMutex()) { try { if(valueToSwap.canBePersisted()) { - valueToSwap.persist(); - return true; + boolean persist = valueToSwap.persist(); + if (!persist) { + LOGGER.error("\n Somehow valueToSwap {} could not be persisted even though canBePersisted returned true\n", valueToSwap); + LOGGER.error("priorityQueue.size() {}", priorityQueue.size()); + if (priorityQueue.size() > 0) { + LOGGER.error("priorityQueue first entry {}", priorityQueue.entrySet().iterator().next()); + } + LOGGER.error("map.size() {}", map.size()); + if (map.size() > 0) { + LOGGER.error("map first entry {}", map.entrySet().iterator().next()); + } + } + return persist; } } catch (Throwable t) { throw new IllegalAcornStateException(t);