Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-6448

Farm deployment through Profile Service API prevents new members from joining cluster

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • EAP_EWP 5.1.2 ER1
    • EAP_EWP 5.1.0
    • Clustering
    • None
    • Hide

      Deploy a war through the Profile Service API:
      1. Go to the EAP admin console (http://localhost:8080/admin-console).
      2. Open localhost.localdomain/JBossAS Servers/JBoss EAP 5 ($YOURCONFIG)/Applications/Web Application (WAR)s
      3. Click the "Add a new resource" button
      4. Choose a .war file, "Deploy Exploded?" = no, "Deploy Farmed?" = yes
      5. Click continue

      Start another JBoss instance that tries to join the same cluster.

      • Observe error during startup.
      Show
      Deploy a war through the Profile Service API: 1. Go to the EAP admin console ( http://localhost:8080/admin-console ). 2. Open localhost.localdomain/JBossAS Servers/JBoss EAP 5 ($YOURCONFIG)/Applications/Web Application (WAR)s 3. Click the "Add a new resource" button 4. Choose a .war file, "Deploy Exploded?" = no, "Deploy Farmed?" = yes 5. Click continue Start another JBoss instance that tries to join the same cluster. Observe error during startup.
    • Release Notes
    • Workaround Exists
    • Hide

      Don't deploy to the farm service with the Profile Service API (for example through the EAP admin console).
      Copy deployments to the farm directory manually.

      Show
      Don't deploy to the farm service with the Profile Service API (for example through the EAP admin console). Copy deployments to the farm directory manually.
    • Hide
      Deploying Web Applications (WARs) to a cluster farm via either the EAP Administration Console or JBoss Operations Network caused a NullPointerException on the joining node, similar to the following:

      <screen>16:16:53,586 ERROR [ScopedProfileServiceController] Error installing to Create: name=ProfileKey@27905a42[domain=default, server=default, name=farm] state=Configured mode=On Demand requiredState=Installed
      java.lang.reflect.InvocationTargetException
      ...
      Caused by: java.lang.NullPointerException
      at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:796)
      at org.jboss.ha.timestamp.TimestampDiscrepancyService.getTimestampDiscrepancy(TimestampDiscrepancyService.java:328)
      at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPolicy.getTimestampDiscrepancy(DefaultSynchronizationPolicy.java:158)
      at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPo
      licy.acceptUpdate(DefaultSynchronizationPolicy.java:121)</screen>

      The cause of the error was incomplete internal data when checking time synchronisation between the deployer and deployee cluster nodes. This issue has now been fixed and deployment of WARs to cluster nodes is successful.
      Show
      Deploying Web Applications (WARs) to a cluster farm via either the EAP Administration Console or JBoss Operations Network caused a NullPointerException on the joining node, similar to the following: <screen>16:16:53,586 ERROR [ScopedProfileServiceController] Error installing to Create: name=ProfileKey@27905a42[domain=default, server=default, name=farm] state=Configured mode=On Demand requiredState=Installed java.lang.reflect.InvocationTargetException ... Caused by: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:796) at org.jboss.ha.timestamp.TimestampDiscrepancyService.getTimestampDiscrepancy(TimestampDiscrepancyService.java:328) at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPolicy.getTimestampDiscrepancy(DefaultSynchronizationPolicy.java:158) at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPo licy.acceptUpdate(DefaultSynchronizationPolicy.java:121)</screen> The cause of the error was incomplete internal data when checking time synchronisation between the deployer and deployee cluster nodes. This issue has now been fixed and deployment of WARs to cluster nodes is successful.
    • Documented as Resolved Issue
    • NEW

    Description

      The Profile Service API (used by the admin console) cannot be used to add farmed deployments,
      because it causes a NullPointerException on joining instances preventing them from starting correctly.

      Technical info:
      When a new node joins the cluster, while copying the farm service contents
      org.jboss.ha.timestamp.TimestampDiscrepancyService.getTimestampDiscrepancy compares
      timestamps on the servers, using RepositoryItemMetaData.originatingNode as a Map key.

      When using the Profile Service API to deploy to the farm service, the RepositoryItemMetaData
      about the deployment is incomplete (no originatingNode, no timestamp).

      The null originatingNode triggers a NullPointerException in TimestampDiscrepancyService when
      the joining node is processing the deployments that were added through the API, causing the
      farm service deployment to fail, and the JBoss startup to fail.

      16:16:53,586 ERROR [ScopedProfileServiceController] Error installing to Create: name=ProfileKey@27905a42[domain=default, server=default, name=farm] state=Configured mode=On Demand requiredState=Installed
      java.lang.reflect.InvocationTargetException
      ...
      Caused by: java.lang.NullPointerException
      at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:796)
      at org.jboss.ha.timestamp.TimestampDiscrepancyService.getTimestampDiscrepancy(TimestampDiscrepancyService.java:328)
      at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPolicy.getTimestampDiscrepancy(DefaultSynchronizationPolicy.java:158)
      at org.jboss.profileservice.cluster.repository.DefaultSynchronizationPo
      licy.acceptUpdate(DefaultSynchronizationPolicy.java:121)
      at org.jboss.system.server.profileservice.repository.clustered.sync.AbstractSynchronizationPolicy.acceptJoinUpdate(AbstractSynchronizationPolicy.java:382)
      at org.jboss.system.server.profileservice.repository.clustered.sync.RemoteContentModificationGenerator.checkAllowUpdate(RemoteContentModificationGenerator.java:467)
      at org.jboss.system.server.profileservice.repository.clustered.sync.RemoteContentModificationGenerator.handleSimpleModification(RemoteContentModificationGenerator.java:431)
      at org.jboss.system.server.profileservice.repository.clustered.sync.AbstractContentModificationGenerator.handleMatch(AbstractContentModificationGenerator.java:137)
      at org.jboss.system.server.profileservice.repository.clustered.sync.AbstractContentModificationGenerator.getModificationList(AbstractContentModificationGenerator.java:222)
      at org.jboss.system.server.profileservice.repository.clustered.sync.AbstractContentModificationGenerator.getModificationList(AbstractContentModificationGenerator.java:78)
      at org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler$RpcTarget.joinSynchronizeContent(DefaultRepositoryClusteringHandler.java:970)
      ...

      Attachments

        Activity

          People

            rhn-support-dereed Dennis Reed
            rhn-support-dereed Dennis Reed
            Russell Dickenson Russell Dickenson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: