Bug 1050041

Summary: HotRod rolling upgrades -- inter-server communication need to "lock" at HR protocol v 1.2
Product: [JBoss] JBoss Data Grid 6 Reporter: Tomas Sykora <tsykora>
Component: ServerAssignee: Tristan Tarrant <ttarrant>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: jdg-bugs
Target Milestone: CR2   
Target Release: 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:34:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tomas Sykora 2014-01-08 16:25:34 UTC
During the process of Hot Rod rolling upgrades, old clients are communicating with JDG 6.1 cluster using HR protocol version 1.2. New clients which are connected to the new (6.2) cluster are using protocol version 1.3.

The problem occurs when a data is being stored into new cluster and its "pinging" old remote cache store using protocol 1.3. (specified in JDG server modules/system/layers/base/org/infinispan/client/hotrod/main).

As a consequence, versions are mixed and following error is thrown:

Caused by: org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for message id[2] returned server error (status=0x85): scala.MatchError: 13 (of class java.lang.Byte)
	at org.infinispan.client.hotrod.impl.protocol.Codec10.checkForErrorsInResponseStatus(Codec10.java:143)
	at org.infinispan.client.hotrod.impl.protocol.Codec10.readHeader(Codec10.java:99)
	at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
	at org.infinispan.client.hotrod.impl.operations.PingOperation.execute(PingOperation.java:44)
	at org.infinispan.client.hotrod.impl.operations.FaultTolerantPingOperation.executeOperation(FaultTolerantPingOperation.java:30)	at org.infinispan.client.hotrod.impl.operations.FaultTolerantPingOperation.executeOperation(FaultTolerantPingOperation.java:16)	at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:46)
	at org.infinispan.client.hotrod.impl.RemoteCacheImpl.ping(RemoteCacheImpl.java:433)
	at org.infinispan.client.hotrod.RemoteCacheManager.ping(RemoteCacheManager.java:632)
	at org.infinispan.client.hotrod.RemoteCacheManager.createRemoteCache(RemoteCacheManager.java:613)
	at org.infinispan.client.hotrod.RemoteCacheManager.getCache(RemoteCacheManager.java:524)
	at org.infinispan.client.hotrod.RemoteCacheManager.getCache(RemoteCacheManager.java:520)
	at org.infinispan.persistence.remote.RemoteStore.start(RemoteStore.java:89)
	at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:122)
	... 23 more


We suggest to "lock" inter-server communication and using HR protocol version 1.2.

Comment 2 Tomas Sykora 2014-01-10 09:02:01 UTC
We are OK here, thanks!

Comment 3 Tomas Sykora 2014-01-10 09:02:53 UTC
And we added "Important INFO" box into doc, that for communicating with old cluster is used protocol v 1.2 and 1.3 for the new cluster.

Comment 4 Red Hat Bugzilla 2025-02-10 03:34:47 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.