[JBoss JIRA] (ISPN-5194) HotRod client using protocolVersion "1.3" sends 2.0 0x29 code
by Frank Suchy (JIRA)
[ https://issues.jboss.org/browse/ISPN-5194?page=com.atlassian.jira.plugin.... ]
Frank Suchy updated ISPN-5194:
------------------------------
Priority: Major (was: Blocker)
> HotRod client using protocolVersion "1.3" sends 2.0 0x29 code
> -------------------------------------------------------------
>
> Key: ISPN-5194
> URL: https://issues.jboss.org/browse/ISPN-5194
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 7.0.3.Final
> Environment: Redhat Linux 2.6.18-400.1.1.el5 #1 SMP Sun Dec 14 06:01:17 EST 2014 x86_64 x86_64 x86_64 GNU/Linux
> Reporter: Frank Suchy
> Labels: hotrod-java-client
>
> While testing the 7.0.3 HotRod client, I ran into a cluster view issue (that's for another bug report) so I attempted to work around it by specifying protocol version 1.3 by calling configurationBuilder.protocolVersion("1.3")
> One of the operations used by the HotRod client is cache.isEmpty().
> This call resulted in the HotRod client sending code 0x29 (41) to the server. The server rightly rejected it, so the client threw an exception.
> Below is a snippet from the HotRod client. Note that Codec13 is setting the operation code to 0x29.
> [2015-01-26 18:53:04,456 TRACE he_Timer-1 undRobinBalancingStrategy] Returning server: /10.22.6.227:11222
> [2015-01-26 18:53:04,456 TRACE he_Timer-1 TcpTransportFactory ] Using the balancer for determining the server: /10.22.6.227:11222
> [2015-01-26 18:53:04,456 TRACE he_Timer-1 TransportObjectFactory ] Fetching from pool: TcpTransport{socket=Socket[addr=/10.22.6.227,port=11222,localport=59868], serverAddress=/10.22.6.227:11222, id =93}
> [2015-01-26 18:53:04,456 TRACE he_Timer-1 TcpTransportFactory ] For server /10.22.6.227:11222: active = 1; idle = 0
> [2015-01-26 18:53:04,456 TRACE he_Timer-1 Codec13 ] Wrote header for message 3035. Operation code: 0x29. Flags: 0x0
> [2015-01-26 18:53:04,458 TRACE he_Timer-1 Codec13 ] Received response for message id: 3035
> [2015-01-26 18:53:04,458 TRACE he_Timer-1 Codec13 ] Received operation status: 0x82
> [2015-01-26 18:53:04,458 TRACE he_Timer-1 AbstractTransport ] Read string is: org.infinispan.server.hotrod.HotRodUnknownOperationException: Unknown operation: 41
> [2015-01-26 18:53:04,458 WARN he_Timer-1 Codec13 ] ISPN004005: Error received from the server: org.infinispan.server.hotrod.HotRodUnknownOperationException: Unknown operation: 41
> [2015-01-26 18:53:04,459 TRACE he_Timer-1 TcpTransportFactory ] Dropping connection as it is no longer valid: TcpTransport{socket=Socket[addr=/10.22.6.227,port=11222,localport=59868], serverAddress=/10.22.6.227:11222, id =93}
> [2015-01-26 18:53:04,459 TRACE he_Timer-1 TransportObjectFactory ] About to destroy tcp transport: TcpTransport{socket=Socket[addr=/10.22.6.227,port=11222,localport=59868], serverAddress=/10.22.6.227:11222, id =93}
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 10 months
[JBoss JIRA] (ISPN-3907) Define a Protobuf annotation for defining numeric IDs for types
by Adrian Nistor (JIRA)
[ https://issues.jboss.org/browse/ISPN-3907?page=com.atlassian.jira.plugin.... ]
Adrian Nistor updated ISPN-3907:
--------------------------------
Git Pull Request: https://github.com/infinispan/protostream/pull/21, https://github.com/infinispan/infinispan/pull/3242 (was: https://github.com/infinispan/protostream/pull/21)
> Define a Protobuf annotation for defining numeric IDs for types
> ---------------------------------------------------------------
>
> Key: ISPN-3907
> URL: https://issues.jboss.org/browse/ISPN-3907
> Project: Infinispan
> Issue Type: Enhancement
> Components: Embedded Querying
> Affects Versions: 6.0.0.Final
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Fix For: 7.1.0.Final
>
>
> Currently the wire format of all Protobuf encoded keys and values contains a header/envelope that has some metadata information, like the fully qualified type name (that is protobuf type name, not java) of the object encoded in the message. This information is needed so that the other end can decode the message. And we added it because the Protobuf spec assumes both ends are aware of the message type, which is not the case most of the time.
> While this approach solves the problem nicely, it becomes very inefficient is the FQN is long, which is usually the case, as people tend to stick the domain name of their company + package app name into it.
> Solution: provide alternative unique numeric IDs to all types. The IDs can be added to message type definitions in the protobuf schema and the user is in charge of guaranteeing their uniqueness while the system must check and enforce the uniqueness when a schema is registered ib the ProtobufMetadataManager. To do this we define a custom Protobuf Message type option that accepts a numeric value. If such a numeric ID was assigned to the type then when it is serialized in protobuf the system has to use this id in the header rather that the FQN string.
> This option should not be mandatory. Existing apps should work without requiring source code changes or recompiling providing that the relevant jars are upgraded in both client and server to support the new header encoding.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
10 years, 10 months