[ 
https://issues.apache.org/jira/browse/ARTEMIS-5241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Clebert Suconic closed ARTEMIS-5241.
------------------------------------

> Remove useless validation for cluster-connection confirmation-window-size
> -------------------------------------------------------------------------
>
>                 Key: ARTEMIS-5241
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5241
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.39.0
>            Reporter: Justin Bertram
>            Assignee: Justin Bertram
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.40.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a Core client reconnects to a broker it may resend packets which it had 
> already sent but to which it had not yet received a reply. The number of 
> packets resent depends on the {{confirmationWindowSize}}. 
> If the resent packets include a client message then that might result in a 
> duplicate message on the broker. To mitigate this risk we have duplicate 
> detection. The broker will compare a special ID set on incoming messages to a 
> cache of IDs which it has already received. The size of this broker-size 
> cache is configured via {{id-cache-size}}. 
> Putting these two things together one can see how the configuration of 
> {{confirmationWindowSize}} and {{id-cache-size}} need to be coordinated to 
> ensure no messages are duplicated. For example, if the 
> {{confirmationWindowSize}} is so large that it holds more client messages 
> than the {{id-cache-size}} the duplicates may occur.
> The method {{checkoutDupCacheSize}} on 
> {{org.apache.activemq.artemis.core.config.impl.ConfigurationImpl}} is meant 
> to help with this coordination for cluster connections, but this method 
> appears to be useless for at least two reasons:
> # It compares the configuration of the cluster-connection's confirmation 
> window size with the {{id-cache-size}} of the _local_ broker. However, the 
> {{id-cache-size}} of the local broker is meaningless for the 
> cluster-connection. It would need to compare the confirmation window size 
> with the {{id-cache-size}} of the _remote_ broker to actually coordinate 
> effectively.
> # It has a bug which causes spurious {{WARN}} messages like this to be logged:
>     {quote}WARN  [org.apache.activemq.artemis.core.server] (Thread-1 
> (ActiveMQ-client-global-threads)) AMQ224078: The size of duplicate cache 
> detection (<id_cache-size/>) appears to be too large 2,000. It should be no 
> greater than the number of messages that can be squeezed into confirmation 
> window buffer (<confirmation-window-size/>) 10,485,760.{quote}
> # In order to calculate how many client messages might be in the confirmation 
> window the logic uses a relatively arbitrary "default" message size. However, 
> if the actual size of the messages is different from this then the {{WARN}} 
> message will be incorrect and unhelpful.
> Considering all this the {{checkoutDupCacheSize}} method and all directly 
> related code should be removed.



--
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