Description
SOLR-5246 added support for splitting collections configured with a router.field but the fix was not back-compatible.
After upgrading an old SolrCloud cluster to 4.6 or 4.6.1, shard splitting can fail with the following message:
ERROR o.a.s.handler.admin.CoreAdminHandler - ERROR executing split:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
at org.apache.solr.handler.admin.CoreAdminHandler.handleSplitAction(CoreAdminHandler.java:285) [solr-core-4.6.1.jar:4.6.1 1560866 - mark - 2014-01-23 20:21:50]
at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:193) [solr-core-4.6.1.jar:4.6.1 1560866 - mark - 2014-01-23 20:21:50]
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) [solr-core-4.6.1.jar:4.6.1 1560866 - mark - 2014-01-23 20:21:50]
This happens because the cluster state still contains the router as a string. The clusterstate.json is supposed to auto-upgrade if cluster state is upgraded but according to the user report that did not happen. In any case, we need to fix the core admin split.