[ https://issues.apache.org/jira/browse/IGNITE-13401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17190186#comment-17190186 ]
Aleksey Plekhanov commented on IGNITE-13401: -------------------------------------------- [~marcuslo], thanks for the report! The root cause of the problem: first byte of your serialized configuration is 103 (length of configuration % 256), it's wrongly treated by thin client marshaller as start of the new object, but actually it's just count of bytes to read. Marshaller tries to deserialize this object and fails. Workaround: change something in your cache configuration to change it serialized length (for example change name of some field, change cache name, add some dummy field etc.) > Unsupported protocol version exception when getting cache configuration from > Java thin client > --------------------------------------------------------------------------------------------- > > Key: IGNITE-13401 > URL: https://issues.apache.org/jira/browse/IGNITE-13401 > Project: Ignite > Issue Type: Bug > Components: thin client > Affects Versions: 2.8.1 > Reporter: Marcus Lo > Assignee: Aleksey Plekhanov > Priority: Major > > We encounter BinaryObjectException: Unsupported protocol version: 8 in one of > our tables in Ignite when querying cache configuration via Java thin client. > To reproduce: > # Setup Ignite with persistence disabled (single node) > # Create the follow table: > {code:java} > CREATE TABLE IF NOT EXISTS LEOD_CONTEXT_STATUS > ( > flashNode VARCHAR NOT NULL, > legalEntity VARCHAR NOT NULL, > account VARCHAR NOT NULL, > userId VARCHAR NOT NULL, > eqtgContext VARCHAR NOT NULL, > submissionDate INT NOT NULL, > action VARCHAR NOT NULL, > actionTime TIME NOT NULL, > runNumber INT NOT NULL, > segment VARCHAR NOT NULL, > geography VARCHAR NOT NULL, > priceVersion VARCHAR NOT NULL, > status VARCHAR NOT NULL, > errorCount INT NOT NULL, > comments VARCHAR, > equityDeltaLowerBound DOUBLE, > equityDeltaUpperBound DOUBLE, > equityDeltaUtil DOUBLE, > equityVegaLowerBound DOUBLE, > equityVegaUpperBound DOUBLE, > equityVegaUtil DOUBLE, > lastUpdateTime TIMESTAMP NOT NULL, > PRIMARY KEY (flashNode, legalEntity, account, submissionDate) > ) > WITH "template=REPLICATED, cache_name=LeodContextStatusCache";{code} > # Run the following test (in Kotlin): > {code:java} > @Test > fun `moo`() { > val config = ClientConfiguration() > .setAddresses("localhost:10800") > val ignite = Ignition.startClient(config) > ignite.cache<Any, Any>("LeodContextStatusCache") > .configuration > } > {code} > # It fails in the following exception: > {code:java} > class org.apache.ignite.binary.BinaryObjectException: Unsupported protocol > version: 8 > at > org.apache.ignite.internal.binary.BinaryUtils.checkProtocolVersion(BinaryUtils.java:796) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:221) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:186) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:165) > at > org.apache.ignite.internal.client.thin.ClientUtils.cacheConfiguration(ClientUtils.java:381) > at > org.apache.ignite.internal.client.thin.TcpClientCache.lambda$getConfiguration$2(TcpClientCache.java:160) > at > org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:247) > at > org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:171) > at > org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:180) > at > org.apache.ignite.internal.client.thin.TcpClientCache.getConfiguration(TcpClientCache.java:155) > {code} > I notice that if any one of the columns is removed, the issue disappears. -- This message was sent by Atlassian Jira (v8.3.4#803005)