[
https://issues.apache.org/jira/browse/ARTEMIS-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17108622#comment-17108622
]
ASF subversion and git services commented on ARTEMIS-2757:
----------------------------------------------------------
Commit 9ff3c17525b39410a934073a30548e3aa1b1cddc in activemq-artemis's branch
refs/heads/master from Clebert Suconic
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=9ff3c17 ]
ARTEMIS-2757 improving flow control in AMQP
> 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
> Priority: Critical
> Fix For: 2.13.0
>
> Attachments: async-sender-output.txt.tar.bz2
>
> Time Spent: 3h 40m
> 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)