You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Thomas Scheffler <th...@uni-jena.de> on 2014/02/27 07:22:56 UTC

SOLRJ and SOLR compatibility

Hi,

I am one developer of a repository framework. We rely on the fact, that 
"SolrJ generally maintains backwards compatibility, so you can use a 
newer SolrJ with an older Solr, or an older SolrJ with a newer Solr." [1]

This statement is not even true for bugfix releases like 4.6.0 -> 4.6.1. 
(SOLRJ 4.6.1, SOLR 4.6.0)

We use SolrInputDocument from SOLRJ to index our documents (javabin). 
But as framework developer we are not in a role to force our users to 
update their SOLR server such often. Instead with every new version we 
want to update just the SOLRJ library we ship with to enable latest 
features, if the user wishes.

When I send a query to a request handler I can attach a "version" 
parameter to tell SOLR which version of the response format I expect.

Is there such a configuration when indexing SolrInputDocuments? I did 
not find it so far.

Kind regards,

Thomas

[1] https://wiki.apache.org/solr/Solrj

Re: SOLRJ and SOLR compatibility

Posted by Michael Sokolov <ms...@safaribooksonline.com>.
On 3/5/2014 1:36 AM, Shawn Heisey wrote:
> On 3/4/2014 8:15 PM, Michael Sokolov wrote:
>> Thanks, Tim, it's great to hear you say that!  I tried to make that
>> point myself with various patches, but they never really got taken up by
>> committers, so I kind of gave up, but I agree with you 100% this is a
>> critical feature if you want to get real-world large deployments to
>> accept frequent updates while continuing to innovate around the
>> communications protocol.
>>
>> A key step would be getting a version number into the protocol so you
>> have a principled way of knowing which version is on the other end of
>> the wire.  I don't know what the state of this is now, but at one time
>> you had to kind of guess based on various secondary artifacts...
> The dev discussion appears to be going that direction.  We already have
> version numbers on the data encoding format (javabin, xml, etc.), we may
> need it for the content of the request as well.  See the newly added
> comments on SOLR-5762:
>
> https://issues.apache.org/jira/browse/SOLR-5762?focusedCommentId=13920560&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13920560
>
> Thanks,
> Shawn
>
I see - thanks, Shawn.  Sounds like moves towards progress on this.

-Mike

Re: SOLRJ and SOLR compatibility

Posted by Shawn Heisey <so...@elyograg.org>.
On 3/4/2014 8:15 PM, Michael Sokolov wrote:
> Thanks, Tim, it's great to hear you say that!  I tried to make that
> point myself with various patches, but they never really got taken up by
> committers, so I kind of gave up, but I agree with you 100% this is a
> critical feature if you want to get real-world large deployments to
> accept frequent updates while continuing to innovate around the
> communications protocol.
> 
> A key step would be getting a version number into the protocol so you
> have a principled way of knowing which version is on the other end of
> the wire.  I don't know what the state of this is now, but at one time
> you had to kind of guess based on various secondary artifacts...

The dev discussion appears to be going that direction.  We already have
version numbers on the data encoding format (javabin, xml, etc.), we may
need it for the content of the request as well.  See the newly added
comments on SOLR-5762:

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

Thanks,
Shawn


Re: SOLRJ and SOLR compatibility

Posted by Michael Sokolov <ms...@safaribooksonline.com>.
Thanks, Tim, it's great to hear you say that!  I tried to make that 
point myself with various patches, but they never really got taken up by 
committers, so I kind of gave up, but I agree with you 100% this is a 
critical feature if you want to get real-world large deployments to 
accept frequent updates while continuing to innovate around the 
communications protocol.

A key step would be getting a version number into the protocol so you 
have a principled way of knowing which version is on the other end of 
the wire.  I don't know what the state of this is now, but at one time 
you had to kind of guess based on various secondary artifacts...

-Mike

On 3/4/14 10:02 PM, Tim Potter wrote:
> 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 <ms...@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 <th...@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


RE: SOLRJ and SOLR compatibility

Posted by Tim Potter <ti...@lucidworks.com>.
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 <ms...@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 <th...@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

Re: SOLRJ and SOLR compatibility

Posted by Michael Sokolov <ms...@safaribooksonline.com>.
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 <th...@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


Re: SOLRJ and SOLR compatibility

Posted by Mark Miller <ma...@gmail.com>.
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 <th...@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


Re: SOLRJ and SOLR compatibility

Posted by Thomas Scheffler <th...@uni-jena.de>.
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

Re: SOLRJ and SOLR compatibility

Posted by Thomas Scheffler <th...@uni-jena.de>.
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:

------
ERROR unable to submit tasks
org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Unknown type 19
         at
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:495)
         at
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:199)
         at
org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)
------

There is not much information in that Stacktrace, I know.
I'll send further information, when I receive more. In the mean time I 
asked our customer not to upgrade the SOLR server to resolve the issue. 
So we could dig deeper.

kind regards,

Thomas

Re: SOLRJ and SOLR compatibility

Posted by Shawn Heisey <so...@elyograg.org>.
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.

Thanks,
Shawn


Re: SOLRJ and SOLR compatibility

Posted by Thomas Scheffler <th...@uni-jena.de>.
Am 27.02.2014 08:04, schrieb Shawn Heisey:
> On 2/26/2014 11:22 PM, Thomas Scheffler wrote:
>> I am one developer of a repository framework. We rely on the fact, that
>> "SolrJ generally maintains backwards compatibility, so you can use a
>> newer SolrJ with an older Solr, or an older SolrJ with a newer Solr." [1]
>>
>> This statement is not even true for bugfix releases like 4.6.0 -> 4.6.1.
>> (SOLRJ 4.6.1, SOLR 4.6.0)
>>
>> We use SolrInputDocument from SOLRJ to index our documents (javabin).
>> But as framework developer we are not in a role to force our users to
>> update their SOLR server such often. Instead with every new version we
>> want to update just the SOLRJ library we ship with to enable latest
>> features, if the user wishes.
>>
>> When I send a query to a request handler I can attach a "version"
>> parameter to tell SOLR which version of the response format I expect.
>>
>> Is there such a configuration when indexing SolrInputDocuments? I did
>> not find it so far.
>
> 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"

I am currently not able to reproduce it myself with server version 
4.5.0, 4.5.1 and 4.6.0 when using solrj 4.6.1

It sounds to be the same issue like described here:

http://lucene.472066.n3.nabble.com/After-upgrading-indexer-to-SolrJ-4-6-1-o-a-solr-servlet-SolrDispatchFilter-Unknown-type-19-td4116152.html

The solution there was to upgrade the Server to version 4.6.1.

This helped here, too. Out there it is a very unpopular decision. Some 
user have large SOLR installs and stick to a certain (4.x) version. They 
want upgrades from us but upgrading company-wide SOLR installations is 
out of their scope.

Is that a known SOLRJ issue that is fixed in version 4.7.0?

kind regards,

Thomas

Re: SOLRJ and SOLR compatibility

Posted by Shawn Heisey <so...@elyograg.org>.
On 2/26/2014 11:22 PM, Thomas Scheffler wrote:
> I am one developer of a repository framework. We rely on the fact, that
> "SolrJ generally maintains backwards compatibility, so you can use a
> newer SolrJ with an older Solr, or an older SolrJ with a newer Solr." [1]
> 
> This statement is not even true for bugfix releases like 4.6.0 -> 4.6.1.
> (SOLRJ 4.6.1, SOLR 4.6.0)
> 
> We use SolrInputDocument from SOLRJ to index our documents (javabin).
> But as framework developer we are not in a role to force our users to
> update their SOLR server such often. Instead with every new version we
> want to update just the SOLRJ library we ship with to enable latest
> features, if the user wishes.
> 
> When I send a query to a request handler I can attach a "version"
> parameter to tell SOLR which version of the response format I expect.
> 
> Is there such a configuration when indexing SolrInputDocuments? I did
> not find it so far.

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.

A full discussion of this topic could fill a short novel.  This reply is
a little long, but hopefully digestible.  I am assuming that you have a
fair amount of familiarity with SolrJ here.  If there's something you
don't understand or seems wrong, we'll explore further.

The javabin format changed between 1.4.1 and the next version (3.1) in a
way that is incompatible in either direction, so mixing those versions
requires using XMLResponseWriter.  The javabin format has remained
unchanged since version 3.1.

Because Solr 1.x is very old and has the javabin incompatibility with
later releases, I will not be discussing it beyond what I wrote above.

You mentioned the version parameter.  SolrJ automatically handles this
in the requests it makes to Solr.  You don't need to worry about it.

One of the first things to say is that if you are using SolrCloud with
the CloudSolrServer object, the only way that you can have any assurance
of success with mixed versions is if your SolrJ version is newer than
your Solr version, and I would not be assured very far unless the minor
version is the same between the two.  SolrCloud is evolving at an
incredible pace.  As far as I know, *backwards* compatibility is pretty
good, but I would not be surprised to learn that there are some hiccups.
 I don't have a lot of experience with CloudSolrServer yet.

Cross-version compatibility with non-cloud setups is MUCH better.  A
non-cloud setup is assumed for the rest of this email.

I think it's important to mention that ConcurrentUpdateSolrServer and
its predecessor StreamingUpdateSolrServer are usually not a good choice,
unless you don't care about error handling.  These classes do NOT inform
the calling application of any error that occurs when sending updates to
Solr.  Rather than rely on one of these methods for making requests in
parallel, your application should be multithreaded and send parallel
requests itself with HttpSolrServer, which is completely threadsafe.

If you're mixing 3.x and 4.x versions, stick to the xml REQUEST writer.
 This is the default in all but the most recent versions of SolrJ, but
it's actually a good idea to explicitly set the writer object so you
won't be surprised by an upgrade.  You can use the binary RESPONSE
writer (which is the default in all versions) with no problem.

If both versions are 4.x, binary is fine for both the request writer and
the response writer, and for performance reasons, is the preferred
choice.  In non-cloud setups, there are very few problems to be found
with any combination of 4.x versions.

Thanks.
Shawn