indy icon indicating copy to clipboard operation
indy copied to clipboard

Cache expiration broken.

Open whitingjr opened this issue 4 years ago • 2 comments

Seeing many of these exceptions

2021-01-04 20:24:10.749 [WARN ] [expiration-thread--p3-t1] o.i.p.manager.PersistenceManagerImpl no no - ISPN000026: Caught exception purging data container!
org.infinispan.commons.CacheListenerException: ISPN000280: Caught exception [java.lang.NullPointerException] while invoking method [public void org.commonjava.indy.core.expire.ScheduleManager.expired(org.infinispan.notifications.cachelistener.event.Cache
EntryExpiredEvent)] on listener instance: org.commonjava.indy.core.expire.ScheduleManager@288e52ea
        at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.lambda$invoke$1(AbstractListenerImpl.java:387)
        at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20)
        at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:404)
        at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1701)
        at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1697)
        at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:1692)
        at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invoke(CacheNotifierImpl.java:1666)
        at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryExpired(CacheNotifierImpl.java:579)
        at org.infinispan.expiration.impl.ExpirationManagerImpl.deleteFromStoresAndNotify(ExpirationManagerImpl.java:206)
        at org.infinispan.expiration.impl.ExpirationManagerImpl.lambda$handleInStoreExpiration$1(ExpirationManagerImpl.java:171)
        at org.infinispan.container.impl.AbstractInternalDataContainer.lambda$compute$3(AbstractInternalDataContainer.java:230)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$remap$16(BoundedLocalCache.java:2199)
        at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.remap(BoundedLocalCache.java:2194)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.compute(BoundedLocalCache.java:2146)
        at com.github.benmanes.caffeine.cache.LocalCache.compute(LocalCache.java:100)
        at org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:229)
        at org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:248)
        at org.infinispan.expiration.impl.ExpirationManagerImpl.handleInStoreExpiration(ExpirationManagerImpl.java:167)
        at org.infinispan.expiration.impl.ExpirationManagerImpl.handleInStoreExpiration(ExpirationManagerImpl.java:158)
        at org.infinispan.persistence.manager.PersistenceManagerImpl$AdvancedPurgeListener.entryPurged(PersistenceManagerImpl.java:442)
        at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.purge(JdbcStringBasedStore.java:468)
        at org.infinispan.persistence.async.AdvancedAsyncCacheWriter.purge(AdvancedAsyncCacheWriter.java:20)
        at org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$purgeExpired$6(PersistenceManagerImpl.java:470)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at org.infinispan.persistence.manager.PersistenceManagerImpl.purgeExpired(PersistenceManagerImpl.java:473)
        at org.infinispan.expiration.impl.ExpirationManagerImpl.processExpiration(ExpirationManagerImpl.java:111)
        at org.infinispan.expiration.impl.ExpirationManagerImpl$ScheduledTask.run(ExpirationManagerImpl.java:245)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NullPointerException: null

whitingjr avatar Jan 04 '21 21:01 whitingjr

@whitingjr where are you seeing this exception ? We are switching to persistent the schedule in cassandra instead of infinispan, that's controlled by the following config: [durable-state] folo.storage=<cassandra or infinispan> store.storage=<cassandra or infinispan> schedule.storage=<cassandra or infinispan>

sswguo avatar Jan 05 '21 05:01 sswguo

A response has been given in a PM.

whitingjr avatar Jan 05 '21 09:01 whitingjr