Hi,
I have an app which uses atlassian-cache-api
in version 4.0.0
. I’ve observed this problem for a Confluence and for a Jira app. Upon installing a new version, uninstall, or deactivating the app the whole instances dies. I see errors like the following:
confluence-7.3.3 | Exception in thread "com.atlassian.upm.core.async.AutoProgressIncrementer" java.util.concurrent.CompletionException: com.atlassian.vcache.ExternalCacheException: Failed due to UNCLASSIFIED_FAILURE
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:932)
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
confluence-7.3.3 | at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:143)
confluence-7.3.3 | at com.atlassian.confluence.impl.concurrency.CompletionStageUtils.foldResult(CompletionStageUtils.java:19)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.SynchronousExternalCache.put(SynchronousExternalCache.java:184)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.SynchronousExternalCache.put(SynchronousExternalCache.java:168)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.SynchronousExternalCache.put(SynchronousExternalCache.java:151)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.SynchronousExternalCache.put(SynchronousExternalCache.java:138)
confluence-7.3.3 | at com.atlassian.confluence.setup.bandana.ConfluenceCachingBandanaPersister.store(ConfluenceCachingBandanaPersister.java:143)
confluence-7.3.3 | at com.atlassian.confluence.setup.bandana.ConfluenceCachingBandanaPersister.store(ConfluenceCachingBandanaPersister.java:118)
confluence-7.3.3 | at com.atlassian.bandana.DefaultBandanaManager.setValue(DefaultBandanaManager.java:48)
confluence-7.3.3 | at jdk.internal.reflect.GeneratedMethodAccessor667.invoke(Unknown Source)
confluence-7.3.3 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
confluence-7.3.3 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
confluence-7.3.3 | at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
confluence-7.3.3 | at com.sun.proxy.$Proxy571.setValue(Unknown Source)
confluence-7.3.3 | at jdk.internal.reflect.GeneratedMethodAccessor667.invoke(Unknown Source)
confluence-7.3.3 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
confluence-7.3.3 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
confluence-7.3.3 | at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:131)
confluence-7.3.3 | at com.sun.proxy.$Proxy571.setValue(Unknown Source)
confluence-7.3.3 | at com.atlassian.sal.confluence.pluginsettings.ConfluencePluginSettings.lambda$put$1(ConfluencePluginSettings.java:49)
confluence-7.3.3 | at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:70)
confluence-7.3.3 | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
confluence-7.3.3 | at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:68)
confluence-7.3.3 | at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.access$001(ConfluenceSpringHostContextAccessor.java:21)
confluence-7.3.3 | at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.lambda$doInTransaction$3(ConfluenceSpringHostContextAccessor.java:72)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
confluence-7.3.3 | at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
confluence-7.3.3 | at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.doInTransaction(ConfluenceSpringHostContextAccessor.java:72)
confluence-7.3.3 | at jdk.internal.reflect.GeneratedMethodAccessor536.invoke(Unknown Source)
confluence-7.3.3 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
confluence-7.3.3 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
confluence-7.3.3 | at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
confluence-7.3.3 | at com.sun.proxy.$Proxy374.doInTransaction(Unknown Source)
confluence-7.3.3 | at jdk.internal.reflect.GeneratedMethodAccessor536.invoke(Unknown Source)
confluence-7.3.3 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
confluence-7.3.3 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
confluence-7.3.3 | at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:131)
confluence-7.3.3 | at com.sun.proxy.$Proxy374.doInTransaction(Unknown Source)
confluence-7.3.3 | at com.atlassian.sal.confluence.pluginsettings.ConfluencePluginSettings.put(ConfluencePluginSettings.java:47)
confluence-7.3.3 | at com.atlassian.upm.core.impl.NamespacedPluginSettings.put(NamespacedPluginSettings.java:34)
confluence-7.3.3 | at com.atlassian.upm.core.async.AsynchronousTaskStatusStoreImpl.storeOngoingTask(AsynchronousTaskStatusStoreImpl.java:100)
confluence-7.3.3 | at com.atlassian.upm.core.async.AsynchronousTaskStatusStoreImpl.lambda$updateTaskStatus$1(AsynchronousTaskStatusStoreImpl.java:76)
confluence-7.3.3 | at com.atlassian.upm.impl.Locks.runWithLock(Locks.java:113)
confluence-7.3.3 | at com.atlassian.upm.impl.Locks.writeWithLock(Locks.java:70)
confluence-7.3.3 | at com.atlassian.upm.core.async.AsynchronousTaskStatusStoreImpl.updateTaskStatus(AsynchronousTaskStatusStoreImpl.java:66)
confluence-7.3.3 | at com.atlassian.upm.core.async.AsynchronousTaskManager$2.updateStatus(AsynchronousTaskManager.java:118)
confluence-7.3.3 | at com.atlassian.upm.core.async.AutoProgressIncrementer.updateProgress(AutoProgressIncrementer.java:68)
confluence-7.3.3 | at com.atlassian.upm.core.async.AutoProgressIncrementer.access$500(AutoProgressIncrementer.java:14)
confluence-7.3.3 | at com.atlassian.upm.core.async.AutoProgressIncrementer$UpdateTask.run(AutoProgressIncrementer.java:88)
confluence-7.3.3 | at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
confluence-7.3.3 | at java.base/java.util.TimerThread.run(Timer.java:506)
confluence-7.3.3 | Caused by: com.atlassian.vcache.ExternalCacheException: Failed due to UNCLASSIFIED_FAILURE
confluence-7.3.3 | at com.atlassian.vcache.internal.legacy.LegacyUtils.mapException(LegacyUtils.java:51)
confluence-7.3.3 | at com.atlassian.vcache.internal.legacy.LegacyStableReadExternalCache.mapException(LegacyStableReadExternalCache.java:125)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractExternalCache.perform(AbstractExternalCache.java:99)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractExternalCache.perform(AbstractExternalCache.java:74)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractStableReadExternalCache.put(AbstractStableReadExternalCache.java:247)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.metrics.TimedExternalWriteOperationsUnbuffered.put(TimedExternalWriteOperationsUnbuffered.java:36)
confluence-7.3.3 | ... 49 more
confluence-7.3.3 | Caused by: com.atlassian.cache.CacheException: java.lang.IllegalStateException: The com.atlassian.bandana.BandanaPersister Cache is not alive (STATUS_SHUTDOWN)
confluence-7.3.3 | at com.atlassian.cache.ehcache.DelegatingCache.put(DelegatingCache.java:97)
confluence-7.3.3 | at com.atlassian.confluence.cache.ehcache.DefaultConfluenceEhCache.put(DefaultConfluenceEhCache.java:149)
confluence-7.3.3 | at com.atlassian.confluence.cache.ConfluenceMonitoringCache.put(ConfluenceMonitoringCache.java:88)
confluence-7.3.3 | at com.atlassian.vcache.internal.legacy.LegacyUtils.directPut(LegacyUtils.java:38)
confluence-7.3.3 | at com.atlassian.vcache.internal.legacy.LegacyStableReadExternalCache.internalPut(LegacyStableReadExternalCache.java:64)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractStableReadExternalCache.lambda$null$17(AbstractStableReadExternalCache.java:250)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.VCacheLock.withLock(VCacheLock.java:33)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractStableReadExternalCache.lambda$put$18(AbstractStableReadExternalCache.java:250)
confluence-7.3.3 | at com.atlassian.vcache.internal.core.service.AbstractExternalCache.perform(AbstractExternalCache.java:89)
confluence-7.3.3 | ... 52 more
confluence-7.3.3 | Caused by: java.lang.IllegalStateException: The com.atlassian.bandana.BandanaPersister Cache is not alive (STATUS_SHUTDOWN)
confluence-7.3.3 | at net.sf.ehcache.Cache$CacheStatus.checkAlive(Cache.java:4086)
confluence-7.3.3 | at net.sf.ehcache.Cache.checkStatus(Cache.java:2777)
confluence-7.3.3 | at net.sf.ehcache.Cache.putInternal(Cache.java:1556)
confluence-7.3.3 | at net.sf.ehcache.Cache.put(Cache.java:1532)
confluence-7.3.3 | at net.sf.ehcache.Cache.put(Cache.java:1497)
confluence-7.3.3 | at com.atlassian.cache.ehcache.DelegatingCache.put(DelegatingCache.java:93)
confluence-7.3.3 | ... 60 more
I use the cache like this:
private final CacheSettings cacheSettings = new CacheSettingsBuilder()
.expireAfterWrite(60, TimeUnit.MINUTES)
.maxEntries(100000)
.flushable()
.replicateAsynchronously()
.statisticsEnabled()
.build();
public PageStatusTree(PageManager pageManager, CacheManager cacheManager) {
this.pageManager = pageManager;
pageStatusCache = cacheManager.getCache("gardenerPageStatusCache", null, cacheSettings);
}
Any advice would be helpful.