If at all possible you shouldn't run with legacyCloud=true. I was just mentioning that in order to see if that was the place to start looking, I could have been clearer.
Let's back up a bit though. I just tried this creating a collection with 6.6.0, changing to 7.1.0 and I can add replicas just fine. Things are weirder when creating a collection with 6.6.1 (or 7.0 for that matter), adding a new replica works but the _old_ core fails to load. So what _exactly_ are your versions? And what _exactly_ did you try? This is suspiciously like https://issues.apache.org/jira/browse/SOLR-11503, the fix will be in 7.2 or you can try patching your 7.1... Erick On Mon, Oct 30, 2017 at 1:00 PM, Dave Seltzer <dselt...@tveyes.com> wrote: > Thanks Erick, I've looked over the documentation. > > Quick follow-up question: > > What are the consequences of running with legacyCloud=true? > Would I need to point a new Solr cluster at a new Zookeeper instance to > avoid this? > > Many thanks! > > -Dave > > On Mon, Oct 30, 2017 at 1:36 PM, Erick Erickson <erickerick...@gmail.com> > wrote: > >> empty clusterstate.json node. OK, you're on state format 2 (the modern >> one) so that's good. No need to MIGRATESTATE >> >> The admin UI>>cloud>>tree view should have a cluster.properties (IIRC >> the name correctly, it'll be fairly obvious). If you have no >> non-default values it'll be totally missing. It's a sibling znode to >> clusterstate.json. >> >> On page 56 of the 7.0 manual you'll find the command to set >> legacyCloud. I recommend you download the PDF as it's easier to search >> until someone breaks loose the time to get the new doc site search >> working.... >> >> Here's the short form: >> >> ./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd >> clusterprop -name legacyCloud -val true >> >> If that works you'll see a node in your ZK tree. >> >> Best, >> Erick >> >> On Mon, Oct 30, 2017 at 9:13 AM, Dave Seltzer <dselt...@tveyes.com> wrote: >> >> You may have to set legacyCloud=true in your cluster properties >> >> Check your cluster properties (top level znode in ZooKeeper). >> > >> > How would I check this? Would it appear in the Solr Cloud interface, or >> do >> > I have to query Zookeeper? >> > >> >> Or, try the MIGRATESTATEFORMAT collection API on your 6x collection >> >> first. If your current installation has a single clusterstate.json >> >> that contains all of your collection information, then this would be >> >> indicated. >> > >> > There is a single /clusterstate.json but it is an empty object. Rather, >> > each collection has a state.json which seems to indicate the state of the >> > cluster. >> > >> > Does that mean I'm using the "zookeeper is the truth" system or the old >> > system? >> > >> > Thanks! >> > >> > -Dave >> > >> > >> > On Mon, Oct 30, 2017 at 11:55 AM, Erick Erickson < >> erickerick...@gmail.com> >> > wrote: >> > >> >> You may have to set legacyCloud=true in your cluster properties. In >> >> the Solr reference guide (7.0) there's a section "Changes to Default >> >> Behaviors" that'll tell you a bit about that. Check your cluster >> >> properties (top level znode in ZooKeeper). >> >> >> >> Or, try the MIGRATESTATEFORMAT collection API on your 6x collection >> >> first. If your current installation has a single clusterstate.json >> >> that contains all of your collection information, then this would be >> >> indicated. >> >> >> >> Mind you I'd experiment on a non-prod system first.... >> >> >> >> Best, >> >> Erick >> >> >> >> >> >> >> >> On Mon, Oct 30, 2017 at 8:44 AM, Dave Seltzer <dselt...@tveyes.com> >> wrote: >> >> > I have a Solr collection with 1 shard and around 40 replicas hosted on >> >> Solr >> >> > 6.6.0 >> >> > >> >> > I added a Solr 7.1 server to the cluster and then tried to add a >> replica >> >> > (ADDREPLICA) onto the new server but got this message: >> >> > >> >> >> Error CREATEing SolrCore 'content_collection_20171013_ >> >> shard1_replica37': >> >> > non legacy mode coreNodeName missing {collection.configName=content, >> >> > shard=shard1, collection=content_collection_20171013} >> >> > >> >> > Is there something I have to do to prepare this collection for Solr >> 7.x? >> >> > >> >> > Thanks, >> >> > >> >> > -Dave >> >> > >> >> > [root@crompcoreph02 ~]# curl "http:// >> >> > [solrclusterloadbalancer]/solr/admin/collections?action= >> >> ADDREPLICA&collection=content_collection_20171013&shard= >> >> shard1&node=$crompcoreph02:8983_solr" >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <response> >> >> > <lst name="responseHeader"><int name="status">500</int><int >> >> > name="QTime">222</int></lst><lst name="failure"><str >> >> > name="crompcoreph02:8983_solr">org.apache.solr.client.solrj. >> >> impl.HttpSolrClient$RemoteSolrException:Error >> >> > from server at http://crompcoreph02:8983/solr: Error CREATEing >> SolrCore >> >> > 'content_collection_20171013_shard1_replica37': non legacy mode >> >> > coreNodeName missing {collection.configName=content, shard=shard1, >> >> > collection=content_collection_20171013}</str></lst><str >> name="Operation >> >> > addreplica caused >> >> > exception:">org.apache.solr.common.SolrException:org. >> apache.solr.common. >> >> SolrException: >> >> > ADDREPLICA failed to create replica</str><lst name="exception"><str >> >> > name="msg">ADDREPLICA failed to create replica</str><int >> >> > name="rspCode">500</int></lst><lst name="error"><lst >> >> name="metadata"><str >> >> > name="error-class">org.apache.solr.common.SolrException</str><str >> >> > name="root-error-class">org.apache.solr.common. >> >> SolrException</str></lst><str >> >> > name="msg">ADDREPLICA failed to create replica</str><str >> >> > name="trace">org.apache.solr.common.SolrException: ADDREPLICA failed >> to >> >> > create replica >> >> > at >> >> > org.apache.solr.handler.admin.CollectionsHandler.handleResponse( >> >> CollectionsHandler.java:300) >> >> > at >> >> > org.apache.solr.handler.admin.CollectionsHandler.invokeAction( >> >> CollectionsHandler.java:237) >> >> > at >> >> > org.apache.solr.handler.admin.CollectionsHandler.handleRequestBody( >> >> CollectionsHandler.java:215) >> >> > at >> >> > org.apache.solr.handler.RequestHandlerBase.handleRequest( >> >> RequestHandlerBase.java:173) >> >> > at >> >> > org.apache.solr.servlet.HttpSolrCall.handleAdmin( >> HttpSolrCall.java:748) >> >> > at >> >> > org.apache.solr.servlet.HttpSolrCall.handleAdminRequest( >> >> HttpSolrCall.java:729) >> >> > at org.apache.solr.servlet.HttpSolrCall.call( >> >> HttpSolrCall.java:510) >> >> > at >> >> > org.apache.solr.servlet.SolrDispatchFilter.doFilter( >> >> SolrDispatchFilter.java:361) >> >> > at >> >> > org.apache.solr.servlet.SolrDispatchFilter.doFilter( >> >> SolrDispatchFilter.java:305) >> >> > at >> >> > org.eclipse.jetty.servlet.ServletHandler$CachedChain. >> >> doFilter(ServletHandler.java:1691) >> >> > at >> >> > org.eclipse.jetty.servlet.ServletHandler.doHandle( >> >> ServletHandler.java:582) >> >> > at >> >> > org.eclipse.jetty.server.handler.ScopedHandler.handle( >> >> ScopedHandler.java:143) >> >> > at >> >> > org.eclipse.jetty.security.SecurityHandler.handle( >> >> SecurityHandler.java:548) >> >> > at >> >> > org.eclipse.jetty.server.session.SessionHandler. >> >> doHandle(SessionHandler.java:226) >> >> > at >> >> > org.eclipse.jetty.server.handler.ContextHandler. >> >> doHandle(ContextHandler.java:1180) >> >> > at >> >> > org.eclipse.jetty.servlet.ServletHandler.doScope( >> >> ServletHandler.java:512) >> >> > at >> >> > org.eclipse.jetty.server.session.SessionHandler. >> >> doScope(SessionHandler.java:185) >> >> > at >> >> > org.eclipse.jetty.server.handler.ContextHandler. >> >> doScope(ContextHandler.java:1112) >> >> > at >> >> > org.eclipse.jetty.server.handler.ScopedHandler.handle( >> >> ScopedHandler.java:141) >> >> > at >> >> > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle( >> >> ContextHandlerCollection.java:213) >> >> > at >> >> > org.eclipse.jetty.server.handler.HandlerCollection. >> >> handle(HandlerCollection.java:119) >> >> > at >> >> > org.eclipse.jetty.server.handler.HandlerWrapper.handle( >> >> HandlerWrapper.java:134) >> >> > at >> >> > org.eclipse.jetty.rewrite.handler.RewriteHandler.handle( >> >> RewriteHandler.java:335) >> >> > at >> >> > org.eclipse.jetty.server.handler.HandlerWrapper.handle( >> >> HandlerWrapper.java:134) >> >> > at org.eclipse.jetty.server.Server.handle(Server.java:534) >> >> > at org.eclipse.jetty.server.HttpChannel.handle( >> >> HttpChannel.java:320) >> >> > at >> >> > org.eclipse.jetty.server.HttpConnection.onFillable( >> >> HttpConnection.java:251) >> >> > at >> >> > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded( >> >> AbstractConnection.java:273) >> >> > at org.eclipse.jetty.io.FillInterest.fillable( >> >> FillInterest.java:95) >> >> > at >> >> > org.eclipse.jetty.io.SelectChannelEndPoint$2.run( >> >> SelectChannelEndPoint.java:93) >> >> > at >> >> > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume. >> >> executeProduceConsume(ExecuteProduceConsume.java:303) >> >> > at >> >> > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume. >> >> produceConsume(ExecuteProduceConsume.java:148) >> >> > at >> >> > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run( >> >> ExecuteProduceConsume.java:136) >> >> > at >> >> > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob( >> >> QueuedThreadPool.java:671) >> >> > at >> >> > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run( >> >> QueuedThreadPool.java:589) >> >> > at java.lang.Thread.run(Thread.java:748) >> >> > </str><int name="code">500</int></lst> >> >> > </response> >> >> >>