[ 
https://issues.apache.org/jira/browse/ARTEMIS-2757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17104864#comment-17104864
 ] 

Timothy A. Bish commented on ARTEMIS-2757:
------------------------------------------

[~clebertsuconic] there are no transactions in play here, just a sender that 
sends unsettled messages as fast as the broker grants it credit.  Capturing the 
behaviour in a test is rather challenging as it suffers a fair bit from 
observer bias, once you start trying to look for it things slow down enough 
that it goes away.  The AMQP test client in the broker is rather slow so I 
doubt you can get the sender rates you need in there to reproduce it reliably.

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

Reply via email to