[keycloak-user] persistent sessions are lost after restart - problem with infinispant file-base persistence

bauer_marie at gmx.net bauer_marie at gmx.net
Sun Dec 3 08:49:14 EST 2017



Hi,
 
we are using version 3.0.0.Final and configured our sessions to be file based persisted by infinispan with the file store.
...
<subsystem xmlns="urn:jboss:domain:infinispan:4.0">
   <cache-container name="keycloak" jndi-name="infinispan/Keycloak">
      <local-cache name="realms">
           <eviction max-entries="10000" strategy="LRU"/>
      </local-cache>
      <local-cache name="users">
           <eviction max-entries="10000" strategy="LRU"/>
      </local-cache>
      <local-cache name="sessions">
        <file-store passivation="false" fetch-state="true" purge="false"
                  relative-to="jboss.home.dir"
                  path="/infinistate/session"/>
      </local-cache>
      <local-cache name="offlineSessions">
        <file-store passivation="false" fetch-state="true" purge="false"
                  relative-to="jboss.home.dir"
                  path="/infinistate/offline-sessions"/>
      </local-cache>
      <local-cache name="loginFailures"/>
      <local-cache name="work">
        <file-store passivation="false" fetch-state="true" purge="false"
                  relative-to="jboss.home.dir"
                  path="/infinistate/work"/>
      </local-cache>
      <local-cache name="authorization">
        <eviction max-entries="100" strategy="LRU"/>
      </local-cache>
      <local-cache name="keys">
        <eviction max-entries="1000" strategy="LRU"/>
        <expiration max-idle="3600000"/>
      </local-cache>
 </cache-container>
        ...
 </subsystem>
 ...
Since we are experiencing problems with that file based persistence we hoped this will be resolved in newer versions.
There are error messages telling that there is a persistence problem:

ISPN000252: Error executing parallel store task"
Caused by: java.io.StreamCorruptedException: Unexpected byte found when reading an object: 52"
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1285)"
	at org.infinispan.marshall.core.MarshalledEntryImpl.getValue(MarshalledEntryImpl.java:61)"
	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1745)"
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:549)"
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)"
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:531)"
	at org.infinispan.persistence.manager.PersistenceManagerImpl.processOnAllStores(PersistenceManagerImpl.java:432)"
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:549)"
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)"
	at org.infinispan.executors.ExecutorAllCompletionService.pollUntilEmpty(ExecutorAllCompletionService.java:48)"
	... 6 more"
	at org.infinispan.persistence.file.SingleFileStore$2.call(SingleFileStore.java:537)"
	at org.infinispan.persistence.file.SingleFileStore$2.call(SingleFileStore.java:531)"
	at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:21)"
	... 7 more"
	at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181)"
Caused by: java.io.StreamCorruptedException: Unexpected byte found when reading an object: 52"
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:224)"
	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1745)"
	at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:134)"
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:549)"
	at org.infinispan.executors.ExecutorAllCompletionService.pollUntilEmpty(ExecutorAllCompletionService.java:48)"
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)"
	... 18 more"
Caused by: java.io.StreamCorruptedException: Unexpected byte found when reading an object: 52"
	at org.infinispan.persistence.manager.PersistenceManagerImpl.processOnAllStores(PersistenceManagerImpl.java:432)"
	at java.lang.Thread.run(Thread.java:748)"
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1285)"
	at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:116)"
	at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:114)"
	at org.infinispan.persistence.PersistenceUtil.convert(PersistenceUtil.java:133)"
	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)"
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:549)"
	in field loginUsername"
	... 6 more"
	at org.infinispan.persistence.util.PersistenceManagerCloseableSupplier$SupplierCacheLoaderTask.processEntry(PersistenceManagerCloseableSupplier.java:75)"
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)"
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:754)"
	at org.infinispan.marshall.core.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:101)"
	at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:134)"
	at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:114)"
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1285)"
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)"
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)"
Caused by: org.infinispan.persistence.spi.PersistenceException: java.io.StreamCorruptedException: Unexpected byte found when reading an object: 52"
	at org.infinispan.executors.ExecutorAllCompletionService.pollUntilEmpty(ExecutorAllCompletionService.java:48)"
	at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:21)"
	... 7 more"

This causes a high CPU load.

As we plan to update to 3.3.0.Final I tried the CR2 earlier. Everything seemed to work fine, but the storeed sessions are lost.

So I tried 3.2.0 which has bad errors about persistence and class not found.

So I tried 3.1.1 - could not get the image.

So I tried 3.1.0 - this could read the persisted sessions, I could see them in the administration console.
 


Is anyone experiencing the same problem? Or is there a solution?

Thanks
Marie
 
 
 
 



More information about the keycloak-user mailing list