Bug 1017654 - JON (3.2.0) server plugin, Infinispan resource is not detected
JON (3.2.0) server plugin, Infinispan resource is not detected
Status: VERIFIED
Product: JBoss Data Grid 6
Classification: JBoss
Component: JON Plugin (Show other bugs)
6.2.0
Unspecified Unspecified
unspecified Severity high
: ---
: 6.2.0
Assigned To: Tristan Tarrant
Martin Gencur
:
Depends On: 1028047 1018179
Blocks: 1010994 1017190
  Show dependency treegraph
 
Reported: 2013-10-10 05:56 EDT by Tomas Sykora
Modified: 2013-11-25 07:03 EST (History)
4 users (show)

See Also:
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: ---


Attachments (Terms of Use)

  None (edit)
Description Tomas Sykora 2013-10-10 05:56:10 EDT
Testing latest JDG jon-server-plugin (ER2/ER3) on this configuration:

JON 3.2.0.ER3
+ rhq-jboss-as-7-plugin-4.9.0.JON320ER1.jar
+ infinispan-server-rhq-plugin-6.0.0.CR1-redhat-1.jar

Infinispan resource is not exposed under list of respective JDG subsystems.

However, we are able to see Endpoint (= Infinispan Server) resource there.

We suspect this issue is caused by mismatch in product names and "something" else in the latest version of rhq-jboss-as-7-plugin (i.e. 4.9.0) because Infinispan subsystem was visible using rhq-jboss-as-7-plugin 4.4.0.
Comment 1 Tomas Sykora 2013-10-10 06:04:19 EDT
Adding into jdg62blockers.

This is even blocker for further testing of jdg jon-server-plugin in oncoming jdg releases (ERs, Beta, CRs).
Comment 2 Tomas Sykora 2013-10-10 07:05:11 EDT
Ah! I finally found something useful:

org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException: Failed to start component for resource Resource[id=10108, uuid=cfd3c6d8-3a17-4f64-8842-3ae6a05970f3, type={JBossAS7}JBossAS7 Standalone Server, key=hostConfig: /home/hudson/jboss-as-jdg6-node1/standalone/configuration/standalone.xml, name=ISPN (0.0.0.0:9990), parent=auto-jdg-agent1.bc.jonqe.lab.eng.bos.redhat.com, version=ISPN 6.2.0].
	at org.rhq.core.pc.inventory.InventoryManager.activateResource(InventoryManager.java:1937)
	at org.rhq.core.pc.inventory.InventoryManager.refreshResourceComponentState(InventoryManager.java:3371)
	at org.rhq.core.pc.inventory.InventoryManager.mergeResource(InventoryManager.java:3255)
	at org.rhq.core.pc.inventory.InventoryManager.mergeModifiedResources(InventoryManager.java:2964)
	at org.rhq.core.pc.inventory.InventoryManager.synchInventory(InventoryManager.java:1252)
	at org.rhq.core.pc.inventory.InventoryManager.synchInventory(InventoryManager.java:1211)
	at org.rhq.core.pc.inventory.InventoryManager.handleReport(InventoryManager.java:1193)
	at org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor.call(RuntimeDiscoveryExecutor.java:126)
	at org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor.call(RuntimeDiscoveryExecutor.java:61)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException: The original product type discovered for this AS7 server was Infinispan Server, but the server is now reporting its product type is [JBoss JDG 6].
	at org.rhq.modules.plugins.jbossas7.BaseServerComponent.validateServerAttributes(BaseServerComponent.java:220)
	at org.rhq.modules.plugins.jbossas7.BaseServerComponent.getAvailabilityNow(BaseServerComponent.java:154)
	at org.rhq.modules.plugins.jbossas7.BaseServerComponent.getAvailability(BaseServerComponent.java:139)
	at org.rhq.modules.plugins.jbossas7.BaseServerComponent.start(BaseServerComponent.java:101)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.rhq.core.pc.inventory.ResourceContainer$ComponentInvocation.call(ResourceContainer.java:654)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	... 3 more
Comment 3 Tomas Sykora 2013-10-10 08:39:20 EDT
We probably need to change line:

} else if (slot.equals("jdg")) { to 

} else if (slot.equals("jdg") || slot.equals("ispn")) {

here:

https://github.com/rhq-project/rhq-plugins/blob/7179fb5889577fd86f621e932eb69ab538d77ccb/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java

or whip JDG product with product.conf file which contains slot="jdg" instead of slot="ispn" but this is not flexible enough.
Someone maybe needs to monitor community based ispn server.

Therefore, we probably need to change detection mechanism in rhq-jboss-as-7 plugin as our jdg plugin depends on this and its discovering mechanisms.
Comment 5 Tomas Sykora 2013-10-11 03:57:49 EDT
Aforementioned link is deprecated. 

Latest plugins are built using this repo:

https://git.fedorahosted.org/cgit/rhq/rhq.git/tree/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java

I can see decision flow:

} else if (slot.equals("ispn")) {
    productType = JBossProductType.ISPN;
} else if (slot.equals("jdg")) {
    productType = JBossProductType.JDG;

The problem is cause by some mixture between these 2 types.

"The original product type discovered for this AS7 server was Infinispan Server, but the server is now reporting its product type is [JBoss JDG 6]"
Comment 6 Tomas Sykora 2013-10-11 06:51:44 EDT
Something similar (maybe exactly the same) happened for Portal plug-in.

This is fix for that Portal issue:

https://git.fedorahosted.org/cgit/rhq/rhq.git/commit/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java?id=02ed9c403f3ee1aa7fb1b5f1e1cee5713997fa56

Maybe we need to consider removing JDG or ISPN product type from list.

Our product.conf in ispn server is reporting slot=ispn and I don't think this will change in JDG GA distribution. 

Any thoughts?
Comment 7 Tomas Sykora 2013-10-11 07:14:15 EDT
I've found what's the cause of this problem.

Look at line 216 here:
https://git.fedorahosted.org/cgit/rhq/rhq.git/tree/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/SubsystemDiscovery.java

boolean ourPluginTypeIsJdg = ourType.getPlugin().equals("JDG");

In SubsystemDiscovery is method (private boolean shouldSkipEntryWrtIspn) which decides about skipping Infinispan subsystem and not registering/showing him.

ourPluginTypeIsJdg is returning FALSE, because our plugin in InfinispanServer is named: InfinispanServer.

Therefore, AS discovery is simply ignoring him.

I will create respective bugzilla for JON jboss-as-7 plugin and suggest changes which should fix it.

I hope it will be enough:
boolean ourPluginTypeIsJdg = (ourType.getPlugin().equals("JDG") || (ourType.getPlugin().equals("InfinispanServer"));

pfff, this was quite tricky.
Comment 8 Tomas Sykora 2013-11-04 04:40:51 EST
This doesn't need release note for 6.2.BETA release.
Comment 9 Mike Foley 2013-11-07 09:03:51 EST
this is a blocker for JON 3.2 release
Comment 10 Tomas Sykora 2013-11-25 07:03:53 EST
Setting NEW -> VERIFIED directly. 
This product-related bug was fixed by renaming plugin from InfinispanServer to JDG during product build.

VERIFIED for ER4.

We are able to see Infinispan resource using ER4 server plug-in and latest JON ER7. And there is only one resource there (correct).

Note You need to log in before you can comment on or make changes to this bug.