]
Alan Field commented on JGRP-1992:
----------------------------------
For 3.6.7, the port could be set in GOOGLE_PING to work around this. I'll try to send
a PR today
GOOGLE_PING discovery fails if port 443 isn't used
--------------------------------------------------
Key: JGRP-1992
URL:
https://issues.jboss.org/browse/JGRP-1992
Project: JGroups
Issue Type: Bug
Affects Versions: 3.6.6
Reporter: Alan Field
Assignee: Bela Ban
Fix For: 3.6.7
I was doing some testing with GCE, and I ran into the following issue. I have the
following in my JGroups configuration file:
<GOOGLE_PING access_key="access_key"
secret_access_key="secret_access_key"
location="jdg-cluster" />
But I was getting the following exception when starting the JChannel:
caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
at sun.security.ssl.InputRecord.read(InputRecord.java:527)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
at
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at
sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at
org.jgroups.protocols.S3_PING$AWSAuthConnection.checkBucketExists(S3_PING.java:485)
at org.jgroups.protocols.S3_PING.init(S3_PING.java:98)
at org.jgroups.protocols.GOOGLE_PING.init(GOOGLE_PING.java:16)
at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:860)
at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:481)
at org.jgroups.JChannel.init(JChannel.java:854)
at org.jgroups.JChannel.<init>(JChannel.java:159)
at org.jgroups.JChannel.<init>(JChannel.java:129)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:415)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:316)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannelAndRPCDispatcher(JGroupsTransport.java:360)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:198)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:176)
at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:870)
at
org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:639)
at
org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:628)
at
org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:531)
at
org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:238)
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:583)
at
org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:549)
at
org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:420)
at
org.radargun.service.InfinispanEmbeddedService.startCaches(InfinispanEmbeddedService.java:119)
at
org.radargun.service.Infinispan51EmbeddedService.startCaches(Infinispan51EmbeddedService.java:100)
at org.radargun.service.InfinispanLifecycle.start(InfinispanLifecycle.java:45)
at
org.radargun.service.InfinispanKillableLifecycle.start(InfinispanKillableLifecycle.java:51)
at org.radargun.stages.lifecycle.LifecycleHelper.start(LifecycleHelper.java:59)
at
org.radargun.stages.lifecycle.ServiceStartStage.executeOnSlave(ServiceStartStage.java:83)
at org.radargun.SlaveBase.scenarioLoop(SlaveBase.java:87)
at org.radargun.SlaveBase$ScenarioRunner.run(SlaveBase.java:151)
If I skip the check for the existence of the bucket, I get the same exception when trying
to read or write the file. I worked around it by making GOOGLE_PING use the SSL port:
<GOOGLE_PING access_key="access_key"
secret_access_key="secret_access_key"
location="jdg-cluster"
port="443" />
I have looked at the docs for migrating from S3 to Google Cloud Storage
(
https://cloud.google.com/storage/docs/migrating?hl=en), and they don't mention this
requirement. I also verified that S3_PING works without any changes.