Bug 974967 - jvmRoute in standalone.xml can create org.infinispan.marshall.NotSerializableException
jvmRoute in standalone.xml can create org.infinispan.marshall.NotSerializable...
Status: CLOSED CURRENTRELEASE
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Clustering (Show other bugs)
6.1.0
Unspecified Unspecified
unspecified Severity unspecified
: ER1
: EAP 6.2.0
Assigned To: Emmanuel Hugonnet (ehsavoie)
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-06-17 05:30 EDT by Lucas Ponce
Modified: 2014-05-26 21:30 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
When using `mod_jk` with a load balancer and the sticky session flag to create a farming architecture, distributed applications would fail to deploy because clustering was not enabled. This was because without clustering configuration the `LOCAL_ADDRESS` of the `RegistryService` was initialised to a default value which was not serializable. This non-serializable `LOCAL_ADDRESS` prevented successful deployment in this scenario. Now `LOCAL_ADDRESS` is initialised to a serializable value and deployment of distributable applications works as expected in this scenario.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-12-15 11:55:45 EST
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)
test case (14.93 KB, application/zip)
2013-06-17 05:34 EDT, Lucas Ponce
no flags Details
Test case 2 (17.49 KB, application/zip)
2013-06-17 05:39 EDT, Lucas Ponce
no flags Details

  None (edit)
Description Lucas Ponce 2013-06-17 05:30:51 EDT
Description of problem:

Adding a "jvmRoute" in standalone.xml profile produces errors in <distributable /> applications.

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

JBoss EAP 6.1.0.GA (AS 7.2.0.Final-redhat-8)


How reproducible:

Add a "jvmRoute" property in standalone.xml and deploy a <distributable /> application.

Steps to Reproduce:
1. Unzip EAP 6.1.
2. Add a "jvmRoute" system property with value "test".
3. Deploy attachment application.

Actual results:

10:48:27,861 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (ServerService Thread Pool -- 52) ISPN000136: Execution error: org.infinispan.marshall.NotSerializableException: org.jboss.as.clustering.registry.RegistryService$1                                                                                                                                                                                     
Caused by: an exception which occurred:                                                                                                                                                                            


Expected results:

Application deployed without errors.

Additional info:

This scenario can be valid:
- Customer wants a farming architecture, where a mod_jk is used to load balance request but not clustering needed.
- Customer can have a third party application with <distributable /> in their web.xml.
- A possible workaround can be to remove <distributable /> but ideal fix should be that if jvmRoute is present EAP 6.1 should detect if infinispan is configure in distributable/clustering instead of local.
Comment 1 Lucas Ponce 2013-06-17 05:34:05 EDT
Created attachment 761971 [details]
test case
Comment 2 Lucas Ponce 2013-06-17 05:39:06 EDT
Created attachment 761972 [details]
Test case 2

Same error with Serializable objects in session
Comment 4 Emmanuel Hugonnet (ehsavoie) 2013-08-08 07:31:33 EDT
https://github.com/jbossas/jboss-eap/pull/273
Fixing the bug by making the transport address in RegistryService serializable.
Comment 5 Jitka Kozana 2013-09-23 02:41:15 EDT
Verified.
Comment 10 Emmanuel Hugonnet (ehsavoie) 2013-12-02 02:22:15 EST
There should be no change in behaviour (except the missing exception).
The fix was :
The LOCAL_ADDRESS of the RegistryService which is serialized to be shared in the cluster was initialized to its default value because of the missing clustering configuration. This default initialisation was not serializable which provoked this exception.
Thus initialising the LOCAL_ADDRESS with a default value serializable fixed the issue.

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