Details
Description
The change for "ARTEMIS-3474 replace non-inclusive terms" in 2.32.0 changed a String that was used on the wire for Voting. That string is sent on the Vote packet, and so created an incompatibility if mixing a broker <= 2.31.2 with those of versions 2.32.0 - 2.36.0 (e.g during a rolling upgrade) where they dont understand each others values. The other nodes would fail with the following message:
AMQ224090: This node is not configured for Quorum Voting, all nodes must be configured for HA
The server will simply not respond the VoteRequest on that case and the blockCall timeout will fail.
To fix this I'm making 2.37.0+ understand both string values, and when voting against < 2.37.0 versions applying a shorter timeout that will just be ignored and cause retry with the older packet and similar short timeout in case the response wasn't found, before trying for the full timeout with the current value.
The wire version will be bumped in 2.37.0 such that this process does not occur against other new 2.37.0+ brokers, which will then be known to understand the new value (and now old value).
Attachments
Issue Links
- links to