From 1cac6a3814ed4b828e2c182c129d2941dc3e2742 Mon Sep 17 00:00:00 2001 From: jsimomaa Date: Mon, 25 Nov 2019 09:00:08 +0200 Subject: [PATCH] Trying to debug why LRU swap can be stuck in livelock gitlab #424 Change-Id: I7e933284969cebba28d36b25c1cdd51c0e49106d --- .../src/org/simantics/acorn/lru/LRU.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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); -- 2.43.2