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