As of my observation CAS doesn't fall back to 'in memory storage' if the 
remote ticket store is unavailable.

Following are the exception logs i see from logs . 

```
2020-12-02 10:25:17,597 ERROR 
[org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner] - <Cannot get 
Jedis connection; nested exception is 
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a 
resource from the pool>
org.springframework.data.redis.RedisConnectionFailureException: Cannot get 
Jedis connection; nested exception is 
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a 
resource from the pool
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:204)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:348)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory$$FastClassBySpringCGLIB$$648e8c34.invoke(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.cloud.context.config.StandardBeanLifecycleDecorator$2.invoke(StandardBeanLifecycleDecorator.java:85)
 
~[spring-cloud-context-1.2.4.RELEASE.jar:1.2.4.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory$$EnhancerBySpringCGLIB$$53ace114.getConnection(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy155.getConnection(Unknown Source) ~[?:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:129)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:92)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:79)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.keys(RedisTemplate.java:748) 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate$$FastClassBySpringCGLIB$$81812bd6.invoke(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.data.redis.core.RedisTemplate$$EnhancerBySpringCGLIB$$b9a75fb4.keys(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.apereo.cas.ticket.registry.RedisTicketRegistry.getTickets(RedisTicketRegistry.java:90)
 
~[cas-server-support-redis-ticket-registry-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.TicketRegistry.getTicketsStream(TicketRegistry.java:108)
 
~[cas-server-core-api-ticket-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy102.getTicketsStream(Unknown Source) ~[?:?]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.cleanInternal(DefaultTicketRegistryCleaner.java:66)
 
~[cas-server-core-tickets-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.clean(DefaultTicketRegistryCleaner.java:52)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner$$FastClassBySpringCGLIB$$29f046b2.invoke(<generated>)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner$$EnhancerBySpringCGLIB$$89f7e3e5.clean(<generated>)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy160.clean(Unknown Source) [?:?]
at 
org.apereo.cas.config.CasCoreTicketsSchedulingConfiguration$TicketRegistryCleanerScheduler.run(CasCoreTicketsSchedulingConfiguration.java:90)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
 
[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
 
[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_163]
at 
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) 
[?:1.8.0_163]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) 
[?:1.8.0_163]
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
 
[?:1.8.0_163]
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
 
[?:1.8.0_163]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_163]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_163]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_163]
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could 
not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: 
java.net.ConnectException: Connection refused (Connection refused)
at redis.clients.jedis.Connection.connect(Connection.java:207) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) 
~[jedis-2.9.0.jar:?]
at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
Caused by: java.net.ConnectException: Connection refused (Connection 
refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
 
~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
~[?:1.8.0_163]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_163]
at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_163]
at redis.clients.jedis.Connection.connect(Connection.java:184) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) 
~[jedis-2.9.0.jar:?]
at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
2020-12-02 10:25:17,597 ERROR 
[org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner] - <Cannot get 
Jedis connection; nested exception is 
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a 
resource from the pool>
org.springframework.data.redis.RedisConnectionFailureException: Cannot get 
Jedis connection; nested exception is 
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a 
resource from the pool
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:204)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:348)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory$$FastClassBySpringCGLIB$$648e8c34.invoke(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.cloud.context.config.StandardBeanLifecycleDecorator$2.invoke(StandardBeanLifecycleDecorator.java:85)
 
~[spring-cloud-context-1.2.4.RELEASE.jar:1.2.4.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory$$EnhancerBySpringCGLIB$$53ace114.getConnection(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy155.getConnection(Unknown Source) ~[?:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:129)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:92)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:79)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate.keys(RedisTemplate.java:748) 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.springframework.data.redis.core.RedisTemplate$$FastClassBySpringCGLIB$$81812bd6.invoke(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.data.redis.core.RedisTemplate$$EnhancerBySpringCGLIB$$b9a75fb4.keys(<generated>)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
at 
org.apereo.cas.ticket.registry.RedisTicketRegistry.getTickets(RedisTicketRegistry.java:90)
 
~[cas-server-support-redis-ticket-registry-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.TicketRegistry.getTicketsStream(TicketRegistry.java:108)
 
~[cas-server-core-api-ticket-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
~[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy102.getTicketsStream(Unknown Source) ~[?:?]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.cleanInternal(DefaultTicketRegistryCleaner.java:66)
 
~[cas-server-core-tickets-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner.clean(DefaultTicketRegistryCleaner.java:52)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner$$FastClassBySpringCGLIB$$29f046b2.invoke(<generated>)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner$$EnhancerBySpringCGLIB$$89f7e3e5.clean(<generated>)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 
[spring-tx-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
 
[spring-aop-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at com.sun.proxy.$Proxy160.clean(Unknown Source) [?:?]
at 
org.apereo.cas.config.CasCoreTicketsSchedulingConfiguration$TicketRegistryCleanerScheduler.run(CasCoreTicketsSchedulingConfiguration.java:90)
 
[cas-server-core-tickets-5.2.1.jar:5.2.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_163]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_163]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_163]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_163]
at 
org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
 
[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at 
org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
 
[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_163]
at 
java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) 
[?:1.8.0_163]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) 
[?:1.8.0_163]
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
 
[?:1.8.0_163]
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
 
[?:1.8.0_163]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_163]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_163]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_163]
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could 
not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: 
java.net.ConnectException: Connection refused (Connection refused)
at redis.clients.jedis.Connection.connect(Connection.java:207) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) 
~[jedis-2.9.0.jar:?]
at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
Caused by: java.net.ConnectException: Connection refused (Connection 
refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
 
~[?:1.8.0_163]
at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
~[?:1.8.0_163]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_163]
at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_163]
at redis.clients.jedis.Connection.connect(Connection.java:184) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) 
~[jedis-2.9.0.jar:?]
at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
 
~[commons-pool2-2.4.2.jar:2.4.2]
at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) 
~[jedis-2.9.0.jar:?]
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:16) 
~[jedis-2.9.0.jar:?]
at 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:194)
 
~[spring-data-redis-1.8.8.RELEASE.jar:?]
... 90 more
```

On Tuesday, December 1, 2020 at 10:37:32 PM UTC+5:30 Ray Bon wrote:

> Priyambada,
>
> Any loss of the ticket storage system would result in an interruption in 
> an SSO session. This is not limited to redis.
> #2 is more interesting. 
> Does cas fall back to 'in memory storage' if the remote ticket store is 
> unavailable?
> Is there an error log written when the ticket store is unavailable (or 
> some other form of alert)?
>
> Ray
>
> On Tue, 2020-12-01 at 03:14 -0800, Priyambada Madala wrote:
>
> Notice: This message was sent from outside the University of Victoria 
> email system. Please be cautious with links and sensitive information. 
>
>
> Recently during my research i came across the following code from apereo 
> redis ticket repository library .  
>
> https://github.com/apereo/cas/blob/master/support/cas-server-support-redis-ticket-registry/src/main/java/org/apereo/cas/ticket/registry/RedisTicketRegistry.java#L81
>
> The implication of this code is that we dont throw any exception 
> related RedisConnectionFailureException if the connection between redis 
> cluster and cas is broken .  
>
> https://github.com/apereo/cas/blob/master/support/cas-server-support-redis-ticket-registry/src/main/java/org/apereo/cas/ticket/registry/RedisTicketRegistry.java#L70
>
> This results in following behaviour .  
>
>    1. Any Single sign in sessions cant be used any more  
>    2. New users can't log in and will be stuck in login page with out any 
>    error message . 
>
> I have following concerns on the same . 
>
>    1. Can any one help me understand why we designed the API to eat up 
>    the RedisConnectionFailureException . 
>    2. Can we better handle issue #2. 
>
> -- 
>
> Ray Bon
> Programmer Analyst
> Development Services, University Systems
> 2507218831 <(250)%20721-8831> | CLE 019 | [email protected]
>
> I respectfully acknowledge that my place of work is located within the 
> ancestral, traditional and unceded territory of the Songhees, Esquimalt and 
> WSÁNEĆ Nations.
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/b4a6d1f5-180c-468e-a011-a1a04534268bn%40apereo.org.

Reply via email to