[
https://issues.apache.org/jira/browse/ARTEMIS-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Clebert Suconic closed ARTEMIS-2757.
------------------------------------
Assignee: Clebert Suconic
Resolution: Fixed
> AMQP: Broker grants credit before accepting the inbound messages that caused
> it to grant credit
> -----------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-2757
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2757
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: AMQP
> Affects Versions: 2.12.0
> Environment: AMQP Client sending unsettled messages asynchronously
> Reporter: Timothy A. Bish
> Assignee: Clebert Suconic
> Priority: Critical
> Fix For: 2.13.0
>
> Attachments: async-sender-output.txt.tar.bz2
>
> Time Spent: 4h
> Remaining Estimate: 0h
>
> The broker is granting credit to AMQP senders before it has processed and
> settled (accepted) incoming messages. When the client sends enough messages
> to the broker to have crossed the 70% mark that it uses as a replenishment
> threshold the broker is immediately granting more credit regardless of having
> actually enqueued and sent the settlement disposition to the sending client
> thereby essentially granting infinite amounts of credit to a sending client
> as it bombards the broker with messages.
> Small log snippet showing broker dispositions working at a significant
> backlog compared to flows it is sending:
> {code:java}
> <- AMQP: Disposition{role=RECEIVER, first=528649, last=528649}
> -> AMQP: Transfer{handle=0, deliveryId=594049, deliveryTag={539299}}
> <- AMQP: Flow{nextIncomingId=594014, incomingWindow=2147483647,
> nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=594013,
> linkCredit=1000, available=0, drain=false, echo=false, properties=null}
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)