[keycloak-user] Problem with "clear_table_on_view_change" JDBC property on 4.4.0 and 4.5.0

Mike Wakim mwaki011 at gmail.com
Mon Oct 1 18:53:42 EDT 2018


Hello,

We utilize Keycloak with MariaDB. Recently, we have tried working with
Keycloak 4.4.0 (and 4.5.0), and we started seeing a new issue that is
related to JGROUPS. It seems that Keycloak is not able to recognize the
"clear_table_on_view_change" jdbc paramter which we pass which is related
to discovery.

This is the error message that we are seeing:

2018-10-01 22:41:31,013 ERROR [org.jboss.msc.service.fail] (ServerService
> Thread Pool -- 50) MSC000001: Failed to start service
> org.wildfly.clustering.jgroups.channel.ee:
> org.jboss.msc.service.StartException in service
> org.wildfly.clustering.jgroups.channel.ee:
> java.lang.IllegalArgumentException:
> java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     at
> org.jboss.as.clustering.jgroups.subsystem.ChannelBuilder.start(ChannelBuilder.java:100)
>     at
> org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$start$0(AsynchronousServiceBuilder.java:99)
>     at
> org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
>     at
> org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
>     at
> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
>     at
> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
>     at java.lang.Thread.run(Thread.java:748)
>     at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Caused by: java.lang.IllegalArgumentException:
> java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     at
> org.jboss.as.clustering.jgroups.subsystem.AbstractProtocolConfigurationBuilder.createProtocol(AbstractProtocolConfigurationBuilder.java:119)
>     at
> org.jboss.as.clustering.jgroups.JChannelFactory.createChannel(JChannelFactory.java:102)
>     at
> org.jboss.as.clustering.jgroups.subsystem.ChannelBuilder.start(ChannelBuilder.java:98)
>     ... 7 more
> Caused by: java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     at
> org.wildfly.security.manager.WildFlySecurityManager.doUnchecked(WildFlySecurityManager.java:852)
>     at
> org.jboss.as.clustering.jgroups.subsystem.AbstractProtocolConfigurationBuilder.createProtocol(AbstractProtocolConfigurationBuilder.java:114)
>     ... 9 more
> Caused by: java.lang.IllegalArgumentException: Unrecognized JDBC_PING
> properties: [clear_table_on_view_change]
>     at org.jgroups.stack.Protocol.setProperties(Protocol.java:144)
>     at
> org.jboss.as.clustering.jgroups.subsystem.AbstractProtocolConfigurationBuilder.lambda$createProtocol$0(AbstractProtocolConfigurationBuilder.java:108)
>     at
> org.wildfly.security.manager.WildFlySecurityManager.doUnchecked(WildFlySecurityManager.java:850)
>     ... 10 more
>
> 2018-10-01 22:41:31,024 ERROR
> [org.jboss.as.controller.management-operation] (Controller Boot Thread)
> WFLYCTL0013: Operation ("add") failed - address: ([
>     ("subsystem" => "jgroups"),
>     ("channel" => "ee")
> ]) - failure description: {"WFLYCTL0080: Failed services" => {"
> org.wildfly.clustering.jgroups.channel.ee" =>
> "java.lang.IllegalArgumentException:
> java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     Caused by: java.lang.IllegalArgumentException:
> java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     Caused by: java.security.PrivilegedActionException:
> java.lang.IllegalArgumentException: Unrecognized JDBC_PING properties:
> [clear_table_on_view_change]
>     Caused by: java.lang.IllegalArgumentException: Unrecognized JDBC_PING
> properties: [clear_table_on_view_change]"}}
>
>
This error does not happen when we use Keycloak 4.2.1. Our configuration in
standalone-ha.xml for the tcp stack is the following:

>                 <stack name="tcp">
>                     <transport type="TCP" socket-binding="jgroups-tcp"/>
>                     <protocol type="org.jgroups.protocols.JDBC_PING">
>                         <property name="datasource_jndi_name">
>                             java:jboss/datasources/KeycloakDS
>                         </property>
>                         <property name="break_on_coord_rsp">
>                             true
>                         </property>
>                         <property name="clear_table_on_view_change">
>                             true
>                         </property>
>                     </protocol>
>                     <protocol type="MERGE3"/>
>                     <protocol type="FD_SOCK"
> socket-binding="jgroups-tcp-fd"/>
>                     <protocol type="FD"/>
>                     <protocol type="VERIFY_SUSPECT"/>
>                     <protocol type="pbcast.NAKACK2"/>
>                     <protocol type="UNICAST3"/>
>                     <protocol type="pbcast.STABLE"/>
>                     <protocol type="pbcast.GMS">
>                         <property name="max_join_attempts">
>                             5
>                         </property>
>                     </protocol>
>                     <protocol type="MFC"/>
>                     <protocol type="FRAG2"/>
>                 </stack>
>

And we are using the JDBC driver version 2.2.6. It seems that the
clear_table_on_view_change property was removed from JGROUPS without any
documentation / explanation. Has anybody faced a similar issue? Any
thoughts on how to fix this?

Thanks,

Mike


More information about the keycloak-user mailing list