Skip to content

Issue setting up S3_PING with infinispan 15 #356

@adrianodsb

Description

@adrianodsb

Hello everyone, I've been struggling for a few days on trying to setup S3_PING with infinispan on AWS EC2. I would appreciate any help!

Thanks in advance!

I'm using the following versions:

Infinispan: 15.0.6
OpenJDK-21
jgroups-aws: 3.0.0.Final

Other Libs:

aws-java-sdk-core-1.12.767.jar
aws-java-sdk-s3-1.12.767.jar
commons-logging-1.3.3.jar
httpclient5-5.3.1.jar
httpcore5-5.2.5.jar
joda-time-2.12.7.jar

The EC2 instance has awscli installed and there's a role attached to it, which grants full access to the S3 bucket, which is created at us-west-2 region. I can list the bucket from within the instance using "aws s3 ls" command.

Here's my infinispan config:

<infinispan
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="urn:infinispan:config:15.0 https://infinispan.org/schemas/infinispan-config-15.0.xsd
                            urn:infinispan:server:15.0 https://infinispan.org/schemas/infinispan-server-15.0.xsd"
      xmlns="urn:infinispan:config:15.0"
      xmlns:server="urn:infinispan:server:15.0">

   <jgroups>
      <stack name="bridge" extends="tcp">
        <TCP bind_addr="${jgroups.bind.address,jgroups.tcp.address:SITE_LOCAL}"
             bind_port="${jgroups.bind.port,jgroups.tcp.port:7800}"
             diag.enabled="${jgroups.diag.enabled:false}"
             thread_naming_pattern="pl"
             send_buf_size="640k"
             sock_conn_timeout="300"
             linger="${jgroups.tcp.linger:-1}"
             bundler_type="${jgroups.bundler.type:transfer-queue}"
             bundler.max_size="${jgroups.bundler.max_size:64000}"
             non_blocking_sends="${jgroups.non_blocking_sends:false}"

             thread_pool.min_threads="${jgroups.thread_pool.min_threads:0}"
             thread_pool.max_threads="${jgroups.thread_pool.max_threads:200}"
             thread_pool.keep_alive_time="60000"

             use_virtual_threads="${jgroups.thread.virtual,org.infinispan.threads.virtual:false}"
        />
        <RED/>
        <aws.S3_PING region_name="us-west-2"
                bucket_name="inspn-discovery"
                num_discovery_runs="3"
        />
        <MERGE3 min_interval="10000"
                max_interval="30000"
        />
        <FD_SOCK2 offset="${jgroups.fd.port-offset:50000}"/>
        <FD_ALL3/>
        <VERIFY_SUSPECT2 timeout="1000"/>
        <pbcast.NAKACK2 use_mcast_xmit="false"
                        xmit_interval="200"
                        xmit_table_num_rows="50"
                        xmit_table_msgs_per_row="1024"
                        xmit_table_max_compaction_time="30000"
                        resend_last_seqno="true"
        />
        <UNICAST3 conn_close_timeout="5000"
                  xmit_interval="200"
                  xmit_table_num_rows="50"
                  xmit_table_msgs_per_row="1024"
                  xmit_table_max_compaction_time="30000"
        />
        <pbcast.STABLE desired_avg_gossip="5000"
                       max_bytes="1M"
        />
        <pbcast.GMS print_local_addr="false"
                    join_timeout="${jgroups.join_timeout:2000}"
        />
        <UFC max_credits="${jgroups.max_credits:4m}"
             min_threshold="0.40"
        />
        <MFC max_credits="${jgroups.max_credits:4m}"
             min_threshold="0.40"
        />
        <FRAG4 frag_size="${jgroups.frag_size:60000}"/>
      </stack>
      <stack name="xsite" extends="udp">
         <relay.RELAY2 site="${infinispan.site.name:site1}"
                       max_site_masters="${infinispan.site.max_relay_nodes:1}"
                       xmlns="urn:org:jgroups"/>
         <remote-sites default-stack="bridge">
            <remote-site name="${infinispan.site.name:site1}"/>
            <remote-site name="${infinispan.site.name:site2}"/>
         </remote-sites>
      </stack>
   </jgroups>

   <cache-container name="default" statistics="true">
      <transport cluster="${infinispan.cluster.name:site1}" stack="${infinispan.cluster.stack:xsite}" node-name="${infinispan.node.name:}"/>
      <security>
         <authorization/>
      </security>
      <distributed-cache name="respCache" aliases="0" key-partitioner="org.infinispan.distribution.ch.impl.RESPHashFunctionPartitioner" mode="SYNC" statistics="true">
        <backups>
            <backup site="site2" strategy="ASYNC">
               <state-transfer chunk-size="600"
                            timeout="2400000"
                            max-retries="30"
                            wait-time="2000"
                            mode="AUTO"/>
            </backup>
         </backups>
         <encoding>
                <key media-type="application/octet-stream"/>
                <value media-type="application/octet-stream"/>
         </encoding>
      </distributed-cache>
   </cache-container>

   <server xmlns="urn:infinispan:server:15.0">
      <interfaces>
         <interface name="public">
            <inet-address value="${infinispan.bind.address:0.0.0.0}"/>
         </interface>
      </interfaces>

      <socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
         <socket-binding name="default" port="${infinispan.bind.port:11222}"/>
      </socket-bindings>

      <security>
         <security-realms>
            <security-realm name="default">
               <!-- Uncomment to enable TLS on the realm -->
               <!-- server-identities>
                  <ssl>
                     <keystore path="server.pfx"
                               password="password" alias="server"
                               generate-self-signed-certificate-host="localhost"/>
                  </ssl>
               </server-identities-->
               <properties-realm/>
            </security-realm>
         </security-realms>
      </security>

      <endpoints socket-binding="default" security-realm="default" />
   </server>
</infinispan>

The output:

2024-08-04 22:50:05,878 INFO  [BOOT] JVM OpenJDK 64-Bit Server VM Ubuntu 21.0.4+7-Ubuntu-1ubuntu222.04
2024-08-04 22:50:05,887 INFO  [BOOT] JVM arguments = [-server, --add-exports, java.naming/com.sun.jndi.ldap=ALL-UNNAMED, --add-opens, java.base/java.util=ALL-UNNAMED, --add-opens, java.base/java.util.concurrent=ALL-UNNAMED, -Xlog:gc*:file=/opt/infinispan-server-15.0.6.Final/server/log/gc.log:time,uptimemillis:filecount=5,filesize=3M, -Xms64m, -Xmx512m, -XX:MetaspaceSize=64M, -Djava.net.preferIPv4Stack=true, -Djava.awt.headless=true, -Djgroups.s3.region_name=us-west-2, -Djgroups.s3.bucket_name=inspn-discovery, -Dvisualvm.display.name=infinispan-server, -Djava.util.logging.manager=org.infinispan.server.loader.LogManager, -Dinfinispan.server.home.path=/opt/infinispan-server-15.0.6.Final, -classpath, :/opt/infinispan-server-15.0.6.Final/boot/infinispan-server-runtime-15.0.6.Final-loader.jar, org.infinispan.server.loader.Loader, org.infinispan.server.Bootstrap]
2024-08-04 22:50:05,891 INFO  [BOOT] PID = 8031
2024-08-04 22:50:05,947 INFO  [o.i.SERVER] ISPN080000: Infinispan Server 15.0.6.Final starting
2024-08-04 22:50:05,947 INFO  [o.i.SERVER] ISPN080017: Server configuration: infinispan.xml
2024-08-04 22:50:05,948 INFO  [o.i.SERVER] ISPN080032: Logging configuration: /opt/infinispan-server-15.0.6.Final/server/conf/log4j2.xml
2024-08-04 22:50:06,889 INFO  [o.i.SERVER] ISPN080027: Loaded extension 'query-dsl-filter-converter-factory'
2024-08-04 22:50:06,890 INFO  [o.i.SERVER] ISPN080027: Loaded extension 'continuous-query-filter-converter-factory'
2024-08-04 22:50:06,893 INFO  [o.i.SERVER] ISPN080027: Loaded extension 'iteration-filter-converter-factory'
2024-08-04 22:50:06,895 WARN  [o.i.SERVER] ISPN080059: No script engines are available
2024-08-04 22:50:07,781 INFO  [o.i.CONTAINER] ISPN000556: Starting user marshaller 'org.infinispan.commons.marshall.ImmutableProtoStreamMarshaller'
2024-08-04 22:50:08,832 INFO  [o.i.CLUSTER] ISPN000078: Starting JGroups channel `site1` with stack `xsite`
2024-08-04 22:50:08,853 INFO  [o.j.JChannel] local_addr: a4fe24dd-8fc5-410f-81d9-d7444333ff77, name: ip-10-100-1-10-46634
2024-08-04 22:50:08,877 WARN  [o.j.p.UDP] JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB
2024-08-04 22:50:08,879 WARN  [o.j.p.UDP] JGRP000015: the receive buffer of socket MulticastSocket was set to 20MB, but the OS only allocated 212.99KB
2024-08-04 22:50:08,879 WARN  [o.j.p.UDP] JGRP000015: the send buffer of socket MulticastSocket was set to 1MB, but the OS only allocated 212.99KB
2024-08-04 22:50:08,880 WARN  [o.j.p.UDP] JGRP000015: the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 212.99KB
2024-08-04 22:50:08,896 INFO  [o.j.p.FD_SOCK2] server listening on *.32627
2024-08-04 22:50:10,905 INFO  [o.j.p.p.GMS] ip-10-100-1-10-46634: no members discovered after 2002 ms: creating cluster as coordinator
2024-08-04 22:50:10,929 INFO  [o.i.CLUSTER] ISPN000094: Received new cluster view for channel site1: [ip-10-100-1-10-46634|0] (1) [ip-10-100-1-10-46634]
2024-08-04 22:50:10,942 ERROR [o.j.p.r.RELAY2] ip-10-100-1-10-46634: failed starting relayer java.lang.NoClassDefFoundError: software/amazon/awssdk/services/s3/model/NoSuchBucketException
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
        at java.base/java.lang.Class.getConstructor0(Class.java:3754)
        at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
        at org.jgroups.stack.Configurator.createLayer(Configurator.java:190)
        at org.jgroups.stack.Configurator.createProtocols(Configurator.java:170)
        at org.jgroups.stack.Configurator.createProtocolsAndInitializeAttrs(Configurator.java:104)
        at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:65)
        at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55)
        at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:439)
        at org.jgroups.JChannel.init(JChannel.java:916)
        at org.jgroups.JChannel.<init>(JChannel.java:128)
        at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator.createChannel(EmbeddedJGroupsChannelConfigurator.java:82)
        at org.infinispan.remoting.transport.jgroups.EmbeddedJGroupsChannelConfigurator$1.createChannel(EmbeddedJGroupsChannelConfigurator.java:126)
        at org.jgroups.protocols.relay.Relayer2.start(Relayer2.java:45)
        at org.jgroups.protocols.relay.RELAY2.startRelayer(RELAY2.java:476)
        at org.jgroups.protocols.relay.RELAY2.lambda$handleView$2(RELAY2.java:239)
        at org.jgroups.util.TimeScheduler3$Task.run(TimeScheduler3.java:332)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.services.s3.model.NoSuchBucketException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 21 more

2024-08-04 22:50:11,106 INFO  [o.i.CLUSTER] ISPN000079: Channel `site1` local address is `ip-10-100-1-10-46634`, physical addresses are `[10.100.1.10:48163]`
2024-08-04 22:50:11,115 INFO  [o.i.CONTAINER] ISPN000389: Loaded global state, version=15.0.6.Final timestamp=2024-08-04T22:49:54.310363947Z
2024-08-04 22:50:11,927 INFO  [o.i.CONTAINER] ISPN000104: Using EmbeddedTransactionManager
2024-08-04 22:50:12,123 ERROR [o.j.p.r.RELAY2] JGRP000290: ip-10-100-1-10-46634: no route for message from ip-10-100-1-10-46634:site1 to SiteMaster(site2): dropping message
2024-08-04 22:50:12,268 INFO  [o.i.SERVER] ISPN080018: Started connector Resp (internal)
2024-08-04 22:50:12,294 INFO  [o.i.SERVER] ISPN080018: Started connector Memcached (internal)
2024-08-04 22:50:12,355 INFO  [o.i.SERVER] ISPN080018: Started connector HotRod (internal)
2024-08-04 22:50:12,490 INFO  [o.i.SERVER] ISPN080018: Started connector REST (internal)
2024-08-04 22:50:12,512 INFO  [o.i.SERVER] ISPN005055: Using transport: Epoll
2024-08-04 22:50:12,614 INFO  [o.i.SERVER] ISPN080004: Connector SinglePort (default) listening on 0.0.0.0:11222
2024-08-04 22:50:12,615 INFO  [o.i.SERVER] ISPN080034: Server 'ip-10-100-1-10-46634' listening on http://0.0.0.0:11222
2024-08-04 22:50:12,666 INFO  [o.i.SERVER] ISPN080001: Infinispan Server 15.0.6.Final started in 6715ms

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions