[
https://issues.apache.org/jira/browse/ARTEMIS-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17104910#comment-17104910
]
Timothy A. Bish commented on ARTEMIS-2757:
------------------------------------------
[~clebertsuconic] I can set you up with something that can reproduce it if you
want to contact me offline. I'm still testing the repercussions of this on the
broker side. My machines aren't exactly top of the line now so there is an
inflexion point on mine where the client slow down significantly due to the
heavy overhead of tracking hundreds of thousands of unsettled deliveries. It
is possible that the commit that showed the initial client side behaviour
exposes a different issue so maybe looking ahead in the commits or just working
off master would be worthwhile. It's taken me days just to unravel what was
happening so I think this deserves some investigation time before deciding it
isn't worth addressing before the next release.
> 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: Blocker
> Fix For: 2.13.0
>
> Attachments: async-sender-output.txt.tar.bz2
>
>
> 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)