Just my 2 cents on this while I wait for a build ... I think we have to ensure that an older client will work with a newer server or newer client will work with older server to support hot rolling upgrades. It's not unheard of these days for an org to have 10's (or even 100's) of Solr cloud servers. As Solr is a mission-critical technology, sometimes it can't just be taken off-line, so most need to upgrade servers one-by-one. This implies that during a hot rolling upgrade, there's going to be a mix of Solr server versions talking to each other and clients talking to different versions of servers. You can't take it out of the LB either since eventually, you'll have no nodes in your LB.
I think ops folks will accept either solution (old client -> new server or new client -> old server), but we as a community need to pick one and build out the test suites that ensure SolrJ compatibility with different versions. Timothy Potter Sr. Software Engineer, LucidWorks www.lucidworks.com ________________________________________ From: Michael Sokolov <msoko...@safaribooksonline.com> Sent: Tuesday, March 04, 2014 8:37 AM To: solr-user@lucene.apache.org Subject: Re: SOLRJ and SOLR compatibility Does that mean newer clients work with older servers (I think so, from reading this thread), or the other way round? If so, I guess the advice would be -- upgrade all your clients first? -Mike On 03/04/2014 10:00 AM, Mark Miller wrote: > Yeah, sorry :( the fix applied is only for compatibility in one direction. > Older code won’t know what this type 19 is. > > - Mark > > http://about.me/markrmiller > > On Mar 4, 2014, at 2:42 AM, Thomas Scheffler <thomas.scheff...@uni-jena.de> > wrote: > >> Am 04.03.2014 07:21, schrieb Thomas Scheffler: >>> Am 27.02.2014 09:15, schrieb Shawn Heisey: >>>> On 2/27/2014 12:49 AM, Thomas Scheffler wrote: >>>>>> What problems have you seen with mixing 4.6.0 and 4.6.1? It's possible >>>>>> that I'm completely ignorant here, but I have not heard of any. >>>>> Actually bug reports arrive me that sound like >>>>> >>>>> "Unknown type 19" >>>> Aha! I found it! It was caused by the change applied for SOLR-5658, >>>> fixed in 4.7.0 (just released) by SOLR-5762. Just my luck that there's >>>> a bug bad enough to contradict what I told you. >>>> >>>> https://issues.apache.org/jira/browse/SOLR-5658 >>>> https://issues.apache.org/jira/browse/SOLR-5762 >>>> >>>> I've added a comment that will help users find SOLR-5762 with a search >>>> for "Unknown type 19". >>>> >>>> If you use SolrJ 4.7.0, compatibility should be better. >>> Hi, >>> >>> I am sorry to inform you that SolrJ 4.7.0 face the same issue with SOLR >>> 4.5.1. I received a client stack trace this morning and still waiting >>> for a Log-Output from the Server: >> Here we go for the server side (4.5.1): >> >> Mrz 03, 2014 2:39:26 PM org.apache.solr.core.SolrCore execute >> Information: [clausthal_test] webapp=/solr path=/select >> params={fl=*,score&sort=mods.dateIssued+desc&q=%2BobjectType:"mods"+%2Bcategory:"clausthal_status\:published"&wt=javabin&version=2&rows=3} >> hits=186 status=0 QTime=2 >> Mrz 03, 2014 2:39:38 PM >> org.apache.solr.update.processor.LogUpdateProcessor finish >> Information: [clausthal_test] webapp=/solr path=/update >> params={wt=javabin&version=2} {} 0 0 >> Mrz 03, 2014 2:39:38 PM org.apache.solr.common.SolrException log >> Schwerwiegend: java.lang.RuntimeException: Unknown type 19 >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:228) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:139) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:131) >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:221) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:116) >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:186) >> at >> org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:112) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:158) >> at >> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:99) >> 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:1859) >> at >> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) >> at >> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> at java.lang.Thread.run(Thread.java:744) >> >> Mrz 03, 2014 2:39:38 PM org.apache.solr.common.SolrException log >> Schwerwiegend: null:java.lang.RuntimeException: Unknown type 19 >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:228) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:139) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:131) >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:221) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:116) >> at >> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:186) >> at >> org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:112) >> at >> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:158) >> at >> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:99) >> 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:1859) >> at >> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) >> at >> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> at java.lang.Thread.run(Thread.java:744) >> >> Mrz 03, 2014 2:39:51 PM org.apache.solr.core.SolrCore execute >> Information: [clausthal_test] webapp=/solr path=/admin/mbeans >> params={omitHeader=true&cat=QUERYHANDLER&wt=javabin&qt=/admin/mbeans&version=2} >> status=0 QTime=20 >> >> Kind regards, >> >> Thomas