In the Lucene/Solr 4.X line, the average minor release interval has been 10 
weeks.  4.9 was released 7 weeks ago.  It takes 2-3 weeks to go from starting 
the release process to producing and announcing a release, so I expect someone 
will volunteer to perform the 4.10 release within the next week or three.

I don’t think directly using the schema API will necessarily fix the issues 
you’re seeing.

Tim Potter is working on SOLR-6249, which will likely improve your experience 
with managed schema/schemaless: 
<https://issues.apache.org/jira/browse/SOLR-6249>.  One thing he’s planning to 
put in place is a way to query each replica's schema version, so instead of 
blindly waiting a fixed amount of time, you could poll all replicas until your 
changes are known to have been incorporated.  (Yes, I realize that forcing 
clients to manage distributed schema versioning is not ideal - I expect there 
will be server-side facilities to do something equivalent.) 

Steve
www.lucidworks.com

On Aug 15, 2014, at 11:49 AM, Joseph Obernberger <joseph.obernber...@gmail.com> 
wrote:

> Thank you!  Any ideas when 4.10 will be released?
> I tried sleeping when adding fields, and that improved things, but since
> I'm in schema-less mode, sometimes that doesn't work either.  If I managed
> the schema all 'myself' using the schema API; would that work?
> 
> 
> On Fri, Aug 15, 2014 at 11:34 AM, Steve Rowe <sar...@gmail.com> wrote:
> 
>> Hi Joseph,
>> 
>> SOLR-6137 <https://issues.apache.org/jira/browse/SOLR-6137> fixed the NPE
>> you encountered with 4.9, as well a couple other managed schema concurrency
>> issues - it will be included in the next release of Solr: 4.10.
>> 
>> Steve
>> 
>> On Aug 15, 2014, at 11:00 AM, Joseph Obernberger <
>> joseph.obernber...@gmail.com> wrote:
>> 
>>> Hi - I've been using Solr Cloud in schema-less mode and am having some
>>> issues with 4.8.1 and 4.9.0 when adding lots of new fields.  In 4.8.1
>> I'll
>>> get continuous messages that say:
>>> 134567307 [qtp968427990-2492] INFO  org.apache.solr.schema.IndexSchema  â
>>> Failed to persist managed schema at /configs/M1/managed-schema - version
>>> mismatch
>>> 134567315 [qtp968427990-2492] INFO  org.apache.solr.schema.IndexSchema  â
>>> Failed to persist managed schema at /configs/M1/managed-schema - version
>>> mismatch
>>> 134567323 [qtp968427990-2492] INFO  org.apache.solr.schema.IndexSchema  â
>>> Failed to persist managed schema at /configs/M1/managed-schema - version
>>> mismatch
>>> 
>>> In 4.9.0, something similar happens, but it comes with a stack trace:
>>> 
>>> 710115 [qtp851206054-45] ERROR org.apache.solr.schema.IndexSchema  â
>> Error
>>> persisting managed schema at /configs/M1/managed-schema
>>> java.lang.NullPointerException
>>>       at
>>> 
>> org.apache.solr.schema.IndexSchema.getCopyFieldProperties(IndexSchema.java:1418)
>>>       at
>>> 
>> org.apache.solr.schema.IndexSchema.getNamedPropertyValues(IndexSchema.java:1375)
>>>       at
>> org.apache.solr.schema.IndexSchema.persist(IndexSchema.java:379)
>>>       at
>>> 
>> org.apache.solr.schema.ManagedIndexSchema.persistManagedSchemaToZooKeeper(ManagedIndexSchema.java:137)
>>>       at
>>> 
>> org.apache.solr.schema.ManagedIndexSchema.persistManagedSchema(ManagedIndexSchema.java:83)
>>>       at
>>> 
>> org.apache.solr.schema.ManagedIndexSchema.addFields(ManagedIndexSchema.java:244)
>>>       at
>>> 
>> org.apache.solr.schema.ManagedIndexSchema.addFields(ManagedIndexSchema.java:201)
>>>       at
>>> 
>> org.apache.solr.schema.ManagedIndexSchema.addFields(ManagedIndexSchema.java:50)
>>>       at
>>> 
>> org.apache.solr.update.processor.AddSchemaFieldsUpdateProcessorFactory$AddSchemaFieldsUpdateProcessor.processAdd(AddSchemaFieldsUpdateProcessorFactory.java:318)
>>>       at
>>> 
>> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>>>       at
>>> 
>> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:117)
>>>       at
>>> 
>> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>>>       at
>>> 
>> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:117)
>>>       at
>>> 
>> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>>>       at
>>> 
>> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:117)
>>>       at
>>> 
>> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>>>       at
>>> 
>> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:117)
>>>       at
>>> 
>> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>>>       at
>>> 
>> org.apache.solr.update.processor.FieldMutatingUpdateProcessor.processAdd(FieldMutatingUpdateProcessor.java:117)
>>>       at
>>> 
>> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:96)
>>>       at
>>> 
>> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:166)
>>>       at
>>> 
>> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:136)
>>>       at
>>> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:225)
>>>       at
>>> 
>> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:121)
>>>       at
>>> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:190)
>>>       at
>>> org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:116)
>>>       at
>>> 
>> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:173)
>>>       at
>>> 
>> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:106)
>>>       at
>>> org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:58)
>>>       at
>>> 
>> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
>>>       at
>>> 
>> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
>>>       at
>>> 
>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
>>>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962)
>>>       at
>>> 
>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
>>>       at
>>> 
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
>>>       at
>>> 
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
>>>       at
>>> 
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
>>>       at
>>> 
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>>>       at
>>> 
>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
>>>       at
>>> 
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>>>       at
>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>>>       at
>>> 
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
>>>       at
>>> 
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>       at org.eclipse.jetty.server.Server.handle(Server.java:368)
>>>       at
>>> 
>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>>>       at
>>> 
>> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>>>       at
>>> 
>> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)
>>>       at
>>> 
>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)
>>>       at
>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:953)
>>>      at
>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
>>>       at
>>> 
>> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>>>       at
>>> 
>> org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
>>>       at
>>> 
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>>>       at
>>> 
>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>>>       at java.lang.Thread.run(Thread.java:745)
>>> 
>>> This happens when adding lots of new fields to a SolrInputDocument from
>>> multiple threads hitting the cluster (right now just 2 shards).
>>> Any ideas / work-arounds?  Thank you very much!
>>> 
>>> -Joe Obernberger
>> 
>> 

Reply via email to