-
Bug
-
Resolution: Done
-
Major
-
JDG 7.0.0 ER5
-
None
I have used the following command to start the JDG 6.6 server and use a specific JGroups stack and configuration:
bin/clustered.sh -Djboss.node.name=node0 -Djboss.socket.binding.port-offset=0 -Djboss.default.jgroups.stack=s3 -Djgroups.s3.bucket=jdg-jgroups-public
This command uses this part of the server configuration:
<stack name="s3">
<transport type="TCP" socket-binding="jgroups-tcp"/>
<protocol type="S3_PING">
<property name="location">${jgroups.s3.bucket:}</property>
<property name="access_key">${jgroups.s3.access_key:}</property>
<property name="secret_access_key">${jgroups.s3.secret_access_key:}</property>
<property name="pre_signed_delete_url">${jgroups.s3.pre_signed_delete_url:}</property>
<property name="pre_signed_put_url">${jgroups.s3.pre_signed_put_url:}</property>
<property name="prefix">${jgroups.s3.prefix:}</property>
</protocol>
<protocol type="MERGE3"/>
<protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
<protocol type="FD_ALL"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="pbcast.NAKACK2">
<property name="use_mcast_xmit">false</property>
</protocol>
<protocol type="UNICAST3"/>
<protocol type="pbcast.STABLE"/>
<protocol type="pbcast.GMS"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
</stack>
However, using the same command with the JDG 7.0.0 ER5 server generates an error:
11:56:18,384 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.jgroups.channel.cluster: org.jboss.msc.service.StartException in service jboss.jgroups.channel.cluster: java.lang.IllegalArgumentException: pre-signed url is not a valid url
at org.infinispan.server.jgroups.spi.service.ChannelBuilder.start(ChannelBuilder.java:79)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: pre-signed url is not a valid url
at org.jgroups.protocols.S3_PING$PreSignedUrlParser.<init>(S3_PING.java:357)
at org.jgroups.protocols.S3_PING.validateProperties(S3_PING.java:259)
at org.jgroups.protocols.S3_PING.init(S3_PING.java:69)
at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:861)
at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:480)
at org.jgroups.JChannel.init(JChannel.java:852)
at org.jgroups.JChannel.<init>(JChannel.java:159)
at org.infinispan.server.jgroups.JChannelFactory$1.run(JChannelFactory.java:105)
at org.infinispan.server.jgroups.JChannelFactory$1.run(JChannelFactory.java:102)
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
at org.infinispan.server.jgroups.JChannelFactory.createChannel(JChannelFactory.java:108)
at org.infinispan.server.jgroups.spi.service.ChannelBuilder.start(ChannelBuilder.java:77)
... 5 more11:56:18,486 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datagrid-jgroups"),
("channel" => "cluster")
]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.jgroups.channel.cluster" => "org.jboss.msc.service.StartException in service jboss.jgroups.channel.cluster: java.lang.IllegalArgumentException: pre-signed url is not a valid url
Caused by: java.lang.IllegalArgumentException: pre-signed url is not a valid url"}}
The issue is that in JDG 6.6 undefined properties are passed with a null, and in JDG 7 they are passed as an empty string. This is causing the property validation in JGroups S3_PING code to fail.