[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 09:10:50 EST 2017


 I forgot to tell, it's essential for us, that the user keep their sessions over restart or redeployment of new keycloak instances.
 
Maybe we're using it the wrong way or we missunderstood something about the configuration.
 
Best regards,
Marie

 
 

Gesendet: Sonntag, 03. Dezember 2017 um 14:49 Uhr
Von: bauer_marie at gmx.net
An: keycloak-user at lists.jboss.org
Betreff: [keycloak-user] persistent sessions are lost after restart - problem with infinispant file-base persistence

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
 
 
 
 

_______________________________________________
keycloak-user mailing list
keycloak-user at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/keycloak-user



More information about the keycloak-user mailing list