java.lang.IllegalStateException at net.openhft.chronicle.map.ShortShortMultiMap.nextPos(ShortShortMultiMap.java:227) at net.openhft.chronicle.map.VanillaChronicleMap$Segment.acquireWithoutLock(VanillaChronicleMap.java:1746) at net.openhft.chronicle.map.VanillaChronicleMap.lookupUsing(VanillaChronicleMap.java:810) at net.openhft.chronicle.map.VanillaChronicleMap.acquireUsingLocked(VanillaChronicleMap.java:772) 2015-04-10 14:51:26,729 WARN [A-selector] net.openhft.chronicle.hash.ChronicleHashErrorListeners$LoggingErrorListener - Grabbing lock held by processId: 134217728, threadId: 0 writersWaiting has underflowed writersWaiting has underflowed writersWaiting has underflowed writersWaiting has underflowed 2015-04-10 14:51:26,730 WARN [B-selector] net.openhft.chronicle.hash.ChronicleHashErrorListeners$LoggingErrorListener - Grabbing lock held by threadId: 0 2015-04-10 14:51:26,731 WARN [C-selector] net.openhft.chronicle.hash.ChronicleHashErrorListeners$LoggingErrorListener - Grabbing lock held by threadId: 0 2015-04-10 14:51:26,731 WARN [D-selector] net.openhft.chronicle.hash.ChronicleHashErrorListeners$LoggingErrorListener - Grabbing lock held by threadId: 0 2015-04-10 14:51:26,730 WARN [E-selector] net.openhft.chronicle.hash.ChronicleHashErrorListeners$LoggingErrorListener - Grabbing lock held by threadId: 0
--
You received this message because you are subscribed to the Google Groups "Chronicle" group.
To unsubscribe from this group and stop receiving emails from it, send an email to java-chronicl...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
When a thread waits a long time (more than 20 seconds) it grabs the lock on the assumption the process holding the lock has died. If the thread has not actually died it detects that it lost the write lock and complains.
We could do a better job of adjusting the time out for systems under extreme loads but I suggest you should avoid overloading the server to this degree.
Doing this will improve concurrency. Only use the write context if you really need to.
I believe we saw a similar exception that we fixed by ensuring all map access occurred inside the ReadContext and WriteContext and only operations that modified the map were done in the WriteContext.
It is possible to have systems without full GC, but most systems will have them.
I will look at changing the strategy to allow for GC pauses.
--