-
Bug
-
Resolution: Done
-
Major
-
4.2.0.Final, 4.2.1.CR3
-
Medium
If a Hot Rod server attempts to send a new hash topology header back to client while rehashing is going on due to a view change, it will fail like this:
java.lang.UnsupportedOperationException: Unsupported!
at org.infinispan.distribution.ch.UnionConsistentHash.getHashId(UnionConsistentHash.java:53)
at org.infinispan.server.hotrod.HotRodEncoder$$anonfun$writeHashTopologyHeader$4.apply(HotRodEncoder.scala:164)
at org.infinispan.server.hotrod.HotRodEncoder$$anonfun$writeHashTopologyHeader$4.apply(HotRodEncoder.scala:160)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at org.infinispan.server.hotrod.HotRodEncoder.writeHashTopologyHeader(HotRodEncoder.scala:160)
at org.infinispan.server.hotrod.HotRodEncoder.writeHeader(HotRodEncoder.scala:117)
at org.infinispan.server.hotrod.HotRodEncoder.encode(HotRodEncoder.scala:32)
A solution here might be to compute all hash ids before deciding whether to send a new topology back to the client. If any of the computations is missed, the encoder could maybe keep track of it and try again when sending response to next command.
A full console log can be found in: http://hudson.qa.jboss.com/hudson/view/EDG/job/edg-51x-stress-client-size6-hotrod/1/console-perf01/consoleText