[ 
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


Reply via email to