[ 
https://issues.apache.org/jira/browse/SOLR-7055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14295609#comment-14295609
 ] 

Hrishikesh Gadre commented on SOLR-7055:
----------------------------------------

I wonder if we should add 'Usage of Java Serializable' in the forbidden API 
check ? This will help in future though. For the current situation, what would 
you suggest? One thought came to my mind is as follows,

1. Replace the Java serialization usage with something else (may be json ?)
2. Provide a migration script which would read the ZK data using the current 
classes (before the upgrade), translate it to the intended serialization format 
and put it back. Obviously during this step Solr cloud would need to be 
shut-down, upgraded to the latest bits and restarted. Since the ZK data is in 
correct format, it would work fine.

> Java serialization error while operating a mixed mode Solr cluster
> ------------------------------------------------------------------
>
>                 Key: SOLR-7055
>                 URL: https://issues.apache.org/jira/browse/SOLR-7055
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 4.10.3
>            Reporter: Hrishikesh Gadre
>
> We are in the process of upgrading Solr cloud from 4.4.0 to 4.10.3. We setup 
> a mixed mode cluster having 1 node of version 4.10.3 and multiple nodes of 
> version 4.4.0. The overseer node was on the older version. 
> When we submitted the request to create a collection, it failed with 
> following exception,
> 2015-01-27 16:37:46,366 INFO org.apache.solr.servlet.SolrDispatchFilter: 
> [admin] webapp=null path=/admin/collections params=
> {numShards=2&maxShardsPerNode=5&createNodeSet=search-testing-c5-ha-2.vpc.cloudera.com&name=coll_ctl_basic_test&replicationFactor=2&action=CREATE}
> status=500 QTime=23 
> 2015-01-27 16:37:46,366 ERROR org.apache.solr.servlet.SolrDispatchFilter: 
> null:org.apache.solr.common.SolrException: java.io.InvalidClassException: 
> org.apache.solr.common.SolrException; local class incompatible: stream 
> classdesc serialVersionUID = -3117666575281450216, local class 
> serialVersionUID = 7729548960805930390
> at org.apache.solr.client.solrj.SolrResponse.deserialize(SolrResponse.java:60)
> at 
> org.apache.solr.handler.admin.CollectionsHandler.handleResponse(CollectionsHandler.java:359)
> at 
> org.apache.solr.handler.admin.CollectionsHandler.handleResponse(CollectionsHandler.java:320)
> at 
> org.apache.solr.handler.admin.CollectionsHandler.handleCreateAction(CollectionsHandler.java:486)
> at 
> org.apache.solr.handler.admin.CollectionsHandler.handleRequestBody(CollectionsHandler.java:148)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:770)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:271)
> at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:211)
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> ...
> Caused by: java.io.InvalidClassException: 
> org.apache.solr.common.SolrException; local class incompatible: stream 
> classdesc serialVersionUID = -3117666575281450216, local class 
> serialVersionUID = 7729548960805930390
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> at java.util.ArrayList.readObject(ArrayList.java:771)
> at sun.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> at org.apache.solr.client.solrj.SolrResponse.deserialize(SolrResponse.java:58)
> ... 30 more 
> From the upgrade perspective, it is important to ensure backward 
> compatibility between the request/response data-types used by Solr cloud.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to