Hi,
We're attempting to do a "rolling upgrade" whereby an old set of servers is replaced with an upgraded set of servers without downtime. The new servers include a Hazelcast upgrade from 1.9.4 to 3.1.5. We can't change the group name (for reasons I won't go into at this point) so the plan was that we would change the password so that the new servers form an operational cluster of their own, before we switch off the old ones.
For example:
- Existing servers A and B are running 1.9.4 with Hz password "goodbye"
- New server C is created that has 3.1.5 and is configured with Hz password "hello"
- New server D is created with 3.1.5 and password "hello"
- New servers should form new and separate cluster from the old machines
- Load balancing etc. is switched to point to the new servers
- Servers A and B are destroyed
My experiments with Hazelcast suggest that the same group name but different passwords will allow two valid and separate clusters to form.
We are however getting these warnings:
2014-05-14 10:52:46,579 WARN [com.hazelcast.nio.ReadHandler] [A.A.A.A]:5802 [my_group_name] hz._hzInstance_1_my_group_name.IO.thread-in-1 Closing socket to endpoint null, Cause:java.lang.IllegalArgumentException: Packet versions are not matching! This -> 1, Incoming -> 0
java.lang.IllegalArgumentException: Packet versions are not matching! This -> 1, Incoming -> 0
at com.hazelcast.nio.Packet.readFrom(Packet.java:113)
at com.hazelcast.nio.SocketPacketReader$DefaultPacketReader.readPacket(SocketPacketReader.java:67)
at com.hazelcast.nio.SocketPacketReader.read(SocketPacketReader.java:49)
at com.hazelcast.nio.ReadHandler.handle(ReadHandler.java:70)
at com.hazelcast.nio.InSelectorImpl.handleSelectionKey(InSelectorImpl.java:33)
at com.hazelcast.nio.AbstractIOSelector.run(AbstractIOSelector.java:124)
Where A.A.A.A is the IP of a new machine.
I wouldn't have expected this problem since the remote (old) server has not joined the cluster - I would have expected invalid password log messages instead.
Is this anything to worry about? Perhaps the packet handling routines are versioned even for cluster joins?
Thanks very much for your help!
Matt