v7.2.0-RC5 Redis-Search enabled breaks the app (SEVERE message)

212 views
Skip to first unread message

Frédéric Dussurget

unread,
Feb 13, 2025, 10:30:26 AM2/13/25
to CAS Community
Hi,

I have these dependancies :
    implementation "org.apereo.cas:cas-server-support-redis-ticket-registry"
    implementation "org.apereo.cas:cas-server-support-redis-service-registry"
    implementation "org.apereo.cas:cas-server-support-gauth-redis"
    implementation "org.apereo.cas:cas-server-support-webauthn-redis"
    implementation "org.apereo.cas:cas-server-support-trusted-mfa-redis"
    implementation "org.apereo.cas:cas-server-support-redis-authentication"
    implementation "org.apereo.cas:cas-server-support-redis-core"

I had to add this one because I like gaming : (see the topic here : https://groups.google.com/a/apereo.org/g/cas-user/c/TNyoMFn-V68/m/5B9ZDSWSBwAJ)
    implementation "org.apereo.cas:cas-server-support-redis-modules"

I installed redis-redisearch package and loaded module redisearch in redis 6.0.16 (compatible with module loading) :
loadmodule /usr/lib/redis/modules/redisearch.so

I checked that FT. command work on my 3 redis-server and Sentinel nodes :
127.0.0.1:6379> keys *
1) "RegisteredService:3"
2) "RegisteredService:48"
3) "RegisteredService:2000"
127.0.0.1:6379> FT.CREATE myIdx SCHEMA title text boddy text
OK
127.0.0.1:6379> FT.ADD myIdx doc1 1.0 fields title "hello world" body "lorem ipsum"
OK
127.0.0.1:6379> FT.SEARCH myIdx "hell*"
1) (integer) 1
2) "doc1"
3) 1) "title"
   2) "hello world"
   3) "body"
   4) "lorem ipsum"



If set cas.ticket.registry.redis.enable-redis-search=true,I've got this error :


2025-02-13 15:11:20,832 WARN [org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker] - <Bean 'org.apereo.cas.config.CasRedisEventsAutoConfiguration' of type [org.apereo.cas.config.CasRedisEventsAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [persistenceExceptionTranslationPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead.>
2025-02-13 15:11:27,947 WARN [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultCasEventListener' defined in class path resource [org/apereo/cas/config/CasCoreEventsAutoConfiguration$CasCoreEventsListenerConfiguration.class]: Unsatisfied dependency expressed through method 'defaultCasEventListener' parameter 4: Error creating bean with name 'logoutManager' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutManagementConfiguration.class]: Unsatisfied dependency expressed through method 'logoutManager' parameter 0: Error creating bean with name 'logoutExecutionPlan' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanConfiguration.class]: Unsatisfied dependency expressed through method 'logoutExecutionPlan' parameter 0: Error creating bean with name 'casCoreLogoutExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'casCoreLogoutExecutionPlanConfigurer' parameter 0: Error creating bean with name 'descendantTicketsLogoutPostProcessor' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'descendantTicketsLogoutPostProcessor' parameter 3: Error creating bean with name 'ticketRegistry' defined in class path resource [org/apereo/cas/config/CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryCoreConfiguration.class]: Failed to instantiate [org.apereo.cas.ticket.registry.TicketRegistry]: Factory method 'ticketRegistry' threw exception with message: ERR unknown command `FT._LIST`, with args beginning with: >
13-Feb-2025 15:11:28.056 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/opt/tomcat/webapps/cas.war]
        java.lang.IllegalStateException: Error starting child
                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686)
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)

reverting it to false makes the app run

Regards,

Matthew Gordon

unread,
Feb 25, 2025, 8:50:40 PM2/25/25
to CAS Community, Frédéric Dussurget
Thank you Frédéric! 

Setting cas.ticket.registry.redis.enable-redis-search=false "fixes" things, since I am using a Redis compatible replacement the search function isn't included.

I may end up switching to hazelcast or something else though, if I can't find another good active-active redis compatible solution.

Thank you,
Matt

Frédéric Dussurget

unread,
Mar 26, 2025, 11:34:46 AM3/26/25
to CAS Community, Matthew Gordon, Frédéric Dussurget
Hi,
I am curious : Were you using the Valkey fork ? Have you eventually switched to something else ?

Well, I gave another try today because I saw changes here : https://github.com/apereo/cas/pull/6612

But, at this time,  the activation of the redis-search function is still breaking the app (v7.2.0-RC6) on a brand "genuine" redis sentinel infra.

Have a good day,

Fred
Reply all
Reply to author
Forward
0 new messages