Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-1992

GOOGLE_PING discovery fails if port 443 isn't used

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 3.6.7
    • 3.6.6
    • None

    Description

      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.

      Attachments

        Activity

          People

            rhn-engineering-bban Bela Ban
            rhn-support-afield Alan Field
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: