[
https://issues.apache.org/jira/browse/ARTEMIS-4725?focusedWorklogId=914925&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-914925
]
ASF GitHub Bot logged work on ARTEMIS-4725:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 16/Apr/24 15:41
Start Date: 16/Apr/24 15:41
Worklog Time Spent: 10m
Work Description: clebertsuconic commented on code in PR #4888:
URL: https://github.com/apache/activemq-artemis/pull/4888#discussion_r1567585396
##########
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java:
##########
@@ -825,8 +826,14 @@ protected ReadableBuffer createDeliveryCopy(int
deliveryCount, DeliveryAnnotatio
}
writeDeliveryAnnotationsForSendBuffer(result, deliveryAnnotations);
- // skip existing delivery annotations of the original message
- duplicate.position(encodedHeaderSize + encodedDeliveryAnnotationsSize);
+
+ if (headerPosition > deliveryAnnotationsPosition && headerPosition !=
VALUE_NOT_PRESENT && deliveryAnnotationsPosition != VALUE_NOT_PRESENT) {
+ // this is for a case where delivery annotations was swiched wrongly
in a previous version
+ duplicate.position(deliveryAnnotationsPosition +
encodedDeliveryAnnotationsSize);
Review Comment:
@gemmellr the issue manifested by stopping all brokers with messages
accumulated. and this is what the test is doing.
It's also mixing versions so that they can be swapped.
I will add more tests but I will keep this test I wrote.
Issue Time Tracking
-------------------
Worklog Id: (was: 914925)
Time Spent: 1h 20m (was: 1h 10m)
> Mirror may send wrong headers
> -----------------------------
>
> Key: ARTEMIS-4725
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4725
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Reporter: Clebert Suconic
> Assignee: Clebert Suconic
> Priority: Major
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> This is not specifically an issue in Mirroring or Broker Connection, but it
> manifested as part of the broker connection codebase.
> When a delivery for the first time after a reload happens, the delivery
> annotation may be written before the header, breaking the specification.
> Later on delivery the message, createDelieryCopy could get confused with the
> positions:
> https://github.com/apache/activemq-artemis/blob/50fae08b09a76e200ef107d06cc867231f644ccd/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L829
--
This message was sent by Atlassian Jira
(v8.20.10#820010)