Bug 969621

Summary: EAP 6 managed plug-in is unable to discover EAP servers when more then one is running on a single host
Product: [JBoss] JBoss Operations Network Reporter: Larry O'Leary <loleary>
Component: Plugin -- JBoss EAP 6Assignee: Thomas Segismont <tsegismo>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: unspecified    
Version: JON 3.1.2CC: lzoubek, tsegismo
Target Milestone: ER01   
Target Release: JON 3.2.0   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Larry O'Leary 2013-06-01 01:27:44 UTC
Description of problem:
When running multiple servers of the same type from a JBoss EAP installation, only one of the servers of the like type can be discovered. The others don't ever show up in the discovery queue. 

For example, if running two domain controllers or two standalone servers (using separate configuration) on a single host that are both started from the same JBOSS_HOME location, only one of the servers shows up in the discovery queue.

Version-Release number of selected component (if applicable):
4.4.0.JON312GA

How reproducible:
Always

Steps to Reproduce:
1. Setup two domain controllers using separate ports, domain.xml, and host.xml files.
2. Update one of the host.xml files to use different server names (instead of server-one/server-two/etc) so that they do not conflict with the first domain controllers hosts.
3. Start up the two domain controllers.
4. Start up JON system.
5. Wait for discovery scan to complete.

Actual results:
Only one of the two servers is discovered.

Expected results:
Both servers get discovered.

Additional info:
This is a direct result of the resource key that is created during discovery:

        DEBUG [InventoryManager.discovery-1] (rhq.core.pc.inventory.InventoryManager)- Executing discovery for [JBossAS7 Host Controller] Resources...
        DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (rhq.core.pluginapi.util.JavaCommandLine)- Parsing JavaCommandLine[arguments=[java, -D[Host Controller], -Dorg.jboss.boot.log.file=/opt/jboss-eap-6.0/domain/log/host-controller.log, -Dlogging.configuration=file:/opt/jboss-eap-6.0/domain/configuration/logging.properties, -server, -Xms64m, -Xmx512m, -XX:MaxPermSize=256m, -Djava.net.preferIPv4Stack=true, -Dorg.jboss.resolver.warning=true, -Dsun.rmi.dgc.client.gcInterval=3600000, -Dsun.rmi.dgc.server.gcInterval=3600000, -Djboss.modules.system.pkgs=org.jboss.byteman, -Djava.awt.headless=true, -Djboss.domain.default.config=domain.xml, -Djboss.host.default.config=host.xml, -jar, /opt/jboss-eap-6.0/jboss-modules.jar, -mp, /opt/jboss-eap-6.0/modules, -jaxpmodule, javax.xml.jaxp-provider, org.jboss.as.host-controller, -mp, /opt/jboss-eap-6.0/modules, --pc-address, 127.0.0.1, --pc-port, 59646, -default-jvm, java, --host-config=host-02.xml, -Djboss.bind.address.management=0.0.0.0, -Djboss.home.dir=/opt/jboss-eap-6.0], includeSystemPropertiesFromClassArguments=true, shortClassOptionFormat=[WHITESPACE, EQUALS_SIGN], longClassOptionFormat=[WHITESPACE, EQUALS_SIGN]]...
        DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (rhq.modules.plugins.jbossas7.HostControllerDiscovery)- Discovered new JBossAS7 Host Controller Resource (key=[/opt/jboss-eap-6.0/domain], name=[EAP Domain Controller (0.0.0.0:9990)], version=[EAP 6.0]).
        DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (rhq.core.pluginapi.util.JavaCommandLine)- Parsing JavaCommandLine[arguments=[java, -D[Host Controller], -Dorg.jboss.boot.log.file=/opt/jboss-eap-6.0/domain/log/host-controller.log, -Dlogging.configuration=file:/opt/jboss-eap-6.0/domain/configuration/logging.properties, -server, -Xms64m, -Xmx512m, -XX:MaxPermSize=256m, -Djava.net.preferIPv4Stack=true, -Dorg.jboss.resolver.warning=true, -Dsun.rmi.dgc.client.gcInterval=3600000, -Dsun.rmi.dgc.server.gcInterval=3600000, -Djboss.modules.system.pkgs=org.jboss.byteman, -Djava.awt.headless=true, -Djboss.domain.default.config=domain.xml, -Djboss.host.default.config=host.xml, -jar, /opt/jboss-eap-6.0/jboss-modules.jar, -mp, /opt/jboss-eap-6.0/modules, -jaxpmodule, javax.xml.jaxp-provider, org.jboss.as.host-controller, -mp, /opt/jboss-eap-6.0/modules, --pc-address, 127.0.0.1, --pc-port, 38596, -default-jvm, java, --backup, -Djboss.domain.master.address=192.168.1.50, --host-config=host-01.xml, -Djboss.domain.login.user=jbossdomain, -Djboss.management.http.port=10090, -Djboss.management.native.port=10099, -Djboss.home.dir=/opt/jboss-eap-6.0], includeSystemPropertiesFromClassArguments=true, shortClassOptionFormat=[WHITESPACE, EQUALS_SIGN], longClassOptionFormat=[WHITESPACE, EQUALS_SIGN]]...
        DEBUG [ResourceDiscoveryComponent.invoker.daemon-1] (rhq.modules.plugins.jbossas7.HostControllerDiscovery)- Discovered new JBossAS7 Host Controller Resource (key=[/opt/jboss-eap-6.0/domain], name=[EAP Host Controller (0.0.0.0:10090)], version=[EAP 6.0]).
        DEBUG [InventoryManager.discovery-1] (rhq.core.pc.inventory.InventoryManager)- Discovery for [JBossAS7 Host Controller] resources completed in [923] ms
        INFO  [InventoryManager.discovery-1] (rhq.core.pc.inventory.InventoryManager)- Detected new Server [Resource[id=0, uuid=a2447f4d-ac80-2014-ff36-b307cc372719, type={JBossAS7}JBossAS7 Host Controller, key=/opt/jboss-eap-6.0/domain, name=EAP Domain Controller (0.0.0.0:9990), parent=<null>, version=EAP 6.0]] - adding to local inventory...

Comment 4 Thomas Segismont 2013-07-18 22:12:32 UTC
Fixed in master

commit 5283e5356d2ca4bda6e3aeea9d323c186030baa9
Author: Thomas Segismont <tsegismo>
Date:   Thu Jul 18 09:41:39 2013 +0200


We used to build resource keys for HostController and StandaloneServer resource types following these rules:
* if the server was auto discovered, use AS7 baseDir
* if the server was manually added, use [host]:[port]

The new rules are:
* if the server was auto discovered, use server host config (standalone or host XML) file path, prefixed by "hostConfig: "
* if the server was manually added, use [host]:[port], prefixed by "hostPort: "

In order to preserve existing resources, BaseProcessDiscovery now implements ResourceUpgradeFacet.

Comment 5 Larry O'Leary 2013-09-06 14:33:02 UTC
As this is MODIFIED or ON_QA, setting milestone to ER1.

Comment 6 Libor Zoubek 2013-10-08 13:24:09 UTC
verified on JON 3.2.ER3