[
https://issues.apache.org/jira/browse/ARTEMIS-4986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robbie Gemmell updated ARTEMIS-4986:
------------------------------------
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 was 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 applying a shorter timeout that will just be ignored and retry
with the older packet 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 new brokers, which will then be known to understand both values.
was:
The change for "ARTEMIS-3474 replace non-inclusive terms" changed a String
that was used on the wire for Voting. That string was sent on the Vote and 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 applying a shorter timeout that will just be ignored and retry
at the older packet in case the response wasn't found.
I was trying to play with Wire versioning but that scenario turned out to be
more complex.
> Replication/Vote incompatibility between any version prior to 2.31.2
> (inclusive) and 2.32+
> ------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-4986
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4986
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.32.0
> Reporter: Clebert Suconic
> Assignee: Clebert Suconic
> Priority: Major
> Fix For: 2.37.0
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> 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 was 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 applying a shorter timeout that will just be ignored and
> retry with the older packet 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 new brokers, which will then be known to understand both values.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact