Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-17232

JGroups channel creation NPE at startup when running a server built from WFLY 27.0.0.Final-SNAPSHOT

XMLWordPrintable

    • Hide

      Repro: https://github.com/fabiobrz/wildfly-remote-infinispan

      Just a POM with some layers. It is built successfully but it throws an error when starting the server:

      $ mvn clean install -Dmaven.repo.local=/home/fburzigo/tmp/tmp-appsint/local-maven-repository
      ...
      ...
      $ ./target/server/bin/standalone.sh
      ...
      15:35:32,735 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 60) 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.IllegalStateException: java.lang.NullPointerException
              at org.wildfly.clustering.service@27.0.0.Final-SNAPSHOT//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:66)
      ...
      
      Show
      Repro: https://github.com/fabiobrz/wildfly-remote-infinispan Just a POM with some layers. It is built successfully but it throws an error when starting the server: $ mvn clean install -Dmaven.repo.local=/home/fburzigo/tmp/tmp-appsint/local-maven-repository ... ... $ ./target/server/bin/standalone.sh ... 15:35:32,735 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 60) 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.IllegalStateException: java.lang.NullPointerException at org.wildfly.clustering.service@27.0.0.Final-SNAPSHOT //org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:66) ...
    • ---
    • ---

      A simple deployment that uses a known layers configuration to provide a trimmed server that is capable of cache distribution.

                          <layers>
                              <layer>jaxrs-server</layer>
                              <layer>web-clustering</layer>
                              <layer>ejb</layer>
                              <layer>ejb-dist-cache</layer>
                          </layers>
                          <excluded-layers>
                              <layer>ejb-local-cache</layer>
                          </excluded-layers>
      

      is built successfully but then throws an NPE at startup:

      15:35:32,735 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 60) 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.IllegalStateException: java.lang.NullPointerException
              at org.wildfly.clustering.service@27.0.0.Final-SNAPSHOT//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:66)
      

      This happens when using the WildFly 27.0.0.Final-SNAPSHOT and wildfly-cloud-galleon-pack v. 2.0.0.Beta2.

      The stack trace leads to a call [1] that looks for a socket binding which actually is not set for FD_SOCK and FD_SOCK2 in the generated server standalone.xml:

      <stack name="udp">
          <transport type="UDP" socket-binding="jgroups-udp"/>
          <protocol type="RED"/>
          <protocol type="MERGE3"/>
          <protocol type="FD_SOCK2"/>
          <protocol type="FD_ALL3"/>
          <protocol type="VERIFY_SUSPECT2"/>
          <protocol type="pbcast.NAKACK2"/>
          <protocol type="UNICAST3"/>
          <protocol type="pbcast.STABLE"/>
          <protocol type="pbcast.GMS"/>
          <protocol type="UFC"/>
          <protocol type="MFC"/>
          <protocol type="FRAG4"/>
          <protocol type="FD_SOCK"/>
      </stack>
      ...
      <socket-binding-group name="standard-sockets" default-interface="public" port-offset="0">
              <socket-binding name="http" interface="bindall" port="${jboss.http.port:8080}"/>
              <socket-binding name="https" interface="bindall" port="${jboss.https.port:8443}"/>
              <socket-binding name="jgroups-mping" interface="private" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
              <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
              <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
      

      CC rhn-engineering-rhusar, pferraro@redhat.com

      [1]
      https://github.com/wildfly/wildfly/blob/main/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/FailureDetectionProtocolConfigurationServiceConfigurator.java#L47

              pferraro@redhat.com Paul Ferraro
              fburzigo Fabio Burzigotti
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: