You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Clebert Suconic (Jira)" <ji...@apache.org> on 2020/05/11 19:44:00 UTC

[jira] [Comment Edited] (ARTEMIS-2757) AMQP: Broker grants credit before accepting the inbound messages that caused it to grant credit

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

Clebert Suconic edited comment on ARTEMIS-2757 at 5/11/20, 7:43 PM:
--------------------------------------------------------------------

[~tabish] : Are you using the Transaction Coordinator (Using transactions on your test)?

 

 

the context.flow is called with the same completion listeners as before. However for the TX case I can see where I should have done it on the async case as well.

Can you attach a simple test? (However no bother if you confirm it's a TX case)


was (Author: clebertsuconic):
[~tabish] : Are you using the Transaction Coordinator (Using transactions on your test)?

 

 

the context.flow is called with the same completion listeners as before. However for the TX case I can see where I should have done it on the async case as well.


Can you attach a simple test?

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