You can not connect a newer TransportClient to a server which is older. You can connect an older TransportClient to a newer server (without being able to use new features).
Jörg On Mon, Jul 14, 2014 at 10:36 AM, xzer LR <[email protected]> wrote: > I think I got the reason. > > At first, I noticed that the row number from the exception stack is not > compatible to the client 1.2.2 source, then it exactly occurred at the old > version 1.0.3 server side. > > Then the service side exception told us that it failed from reading the > last string array: > > > https://github.com/elasticsearch/elasticsearch/blob/1.0/src/main/java/org/elasticsearch/action/admin/cluster/state/ClusterStateRequest.java#L132 > > I recognized that the real problem is the client size did not check the > version correctly, then I digged the source more deeply, then I found the > following row which seems wrong: > > > https://github.com/elasticsearch/elasticsearch/blob/1.0/src/main/java/org/elasticsearch/client/transport/TransportClientNodesService.java#L164 > > DiscoveryNode node = new DiscoveryNode("#transport#-" + > tempNodeIdGenerator.incrementAndGet(), transportAddress, version); > > *The nodes passed to construct the transport client are simply initialized > as the current client version.* > > I have no idea how to fix it but it seems that it should be reported as a > bug? > > > > > > 在 2014年7月12日星期六UTC+9上午4时29分01秒,Ivan Brusic写道: >> >> The code is suspicious since it has an explicit check for versions prior >> to 1.2 >> >> https://github.com/elasticsearch/elasticsearch/ >> blob/master/src/main/java/org/elasticsearch/action/admin/cluster/state/ >> ClusterStateRequest.java#L121-L124 >> >> Don't know much else about the code to comment further. >> >> Cheers, >> >> Ivan >> >> >> On Fri, Jul 11, 2014 at 3:30 AM, xzer LR <[email protected]> wrote: >> >>> I am using TransportClient, the following is how I retrieve the client >>> instance: >>> >>> Client client = new TransportClient(sb.build()).addTransportAddresses( >>> esAddresses); >>> >>> 在 2014年7月11日星期五UTC+9下午6时51分26秒,David Pilato写道: >>>> >>>> Are you using a TransportClient or NodeClient? >>>> If NodeClient, could you try with the TransportClient? >>>> >>>> -- >>>> *David Pilato* | *Technical Advocate* | *Elasticsearch.com* >>>> @dadoonet <https://twitter.com/dadoonet> | @elasticsearchfr >>>> <https://twitter.com/elasticsearchfr> >>>> >>>> >>>> Le 11 juillet 2014 à 11:14:59, xzer LR ([email protected]) a écrit: >>>> >>>> As a test result, I got exceptions when I tried to use the newest >>>> 1.2.2 java client to connect to a 1.0.3 cluster: >>>> >>>> 18:05:41.020 [elasticsearch[Slipstream][transport_client_worker][T#1]{New >>>> I/O worker #1}] [INFO ] [] org.elasticsearch.client.transport[105] - >>>> [Slipstream] failed to get local cluster state for >>>> [#transport#-1][e-note][inet[/192.168.200.81:9300]], disconnecting... >>>> org.elasticsearch.transport.RemoteTransportException: >>>> [server-cat][inet[/192.168.21.81:9300]][cluster/state] >>>> java.lang.IndexOutOfBoundsException: Readable byte limit exceeded: 48 >>>> at org.elasticsearch.common.netty.buffer.AbstractChannelBuffer. >>>> readByte(AbstractChannelBuffer.java:236) ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.transport.netty.ChannelBufferStreamInput.readByte( >>>> ChannelBufferStreamInput.java:132) ~[elasticsearch-1.2.2.jar:na] >>>> at >>>> org.elasticsearch.common.io.stream.StreamInput.readVInt(StreamInput.java:141) >>>> ~[elasticsearch-1.2.2.jar:na] >>>> at >>>> org.elasticsearch.common.io.stream.StreamInput.readString(StreamInput.java:272) >>>> ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.common.io.stream.HandlesStreamInput.readSt >>>> ring(HandlesStreamInput.java:61) ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.common.io.stream.StreamInput.readStringArr >>>> ay(StreamInput.java:362) ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.action.admin.cluster.state.ClusterStateReq >>>> uest.readFrom(ClusterStateRequest.java:132) >>>> ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.transport.netty.MessageChannelHandler.hand >>>> leRequest(MessageChannelHandler.java:209) ~[elasticsearch-1.2.2.jar:na] >>>> at org.elasticsearch.transport.netty.MessageChannelHandler.mess >>>> ageReceived(MessageChannelHandler.java:109) >>>> ~[elasticsearch-1.2.2.jar:na] >>>> >>>> I didn't find any metioned break change about this exceptioin. >>>> >>>> 在 2014年7月4日星期五UTC+9下午3时31分07秒,David Pilato写道: >>>>> >>>>> Well. It depends. >>>>> >>>>> 1.0 is incompatible with 0.90 >>>>> 1.2 should work with 1.x IIRC. >>>>> >>>>> From 1.0, we try to keep this compatible. If not, release notes will >>>>> tell you. >>>>> >>>>> -- >>>>> David ;-) >>>>> Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs >>>>> >>>>> >>>>> Le 4 juil. 2014 à 07:09, xzer LR <[email protected]> a écrit : >>>>> >>>>> For some reasons, we have several separated elasticsearch clusters >>>>> for our front applicaitons. We want to upgrade our clusters' version to >>>>> the >>>>> newest version but apparently it is impossible to upgrade all the clusters >>>>> at the same time, which means our single application have to connect to >>>>> multiple clusters with different versions. >>>>> >>>>> My question is whether the elasticsearch java client has the ability >>>>> to work correctly with an old version server? >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "elasticsearch" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>> msgid/elasticsearch/baa98ec5-ffcf-46f9-bfdd-7afbd213b19d%40goo >>>>> glegroups.com >>>>> <https://groups.google.com/d/msgid/elasticsearch/baa98ec5-ffcf-46f9-bfdd-7afbd213b19d%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "elasticsearch" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit https://groups.google.com/d/ms >>>> gid/elasticsearch/77e32825-812a-46c8-82b4-93a5e4b12788%40goo >>>> glegroups.com >>>> <https://groups.google.com/d/msgid/elasticsearch/77e32825-812a-46c8-82b4-93a5e4b12788%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "elasticsearch" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit https://groups.google.com/d/ >>> msgid/elasticsearch/df3afd7e-b0a5-4d26-a777-fc887427bbed% >>> 40googlegroups.com >>> <https://groups.google.com/d/msgid/elasticsearch/df3afd7e-b0a5-4d26-a777-fc887427bbed%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "elasticsearch" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/86ad8e40-fae6-4581-9972-4c68a0db9d37%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/86ad8e40-fae6-4581-9972-4c68a0db9d37%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoHz3Fvs3PtvoyvH7FcjzG0WDmdSeAwcGB9FvB5ocFGSgQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
