[ 
https://issues.apache.org/jira/browse/QPID-8599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniil Kirilyuk resolved QPID-8599.
-----------------------------------
    Resolution: Not A Bug

Issue fixed by [PROTON-2956|https://issues.apache.org/jira/browse/PROTON-2956]

> [Broker-J] Client receives `Delivery-tag '%s' is used by another unsettled 
> delivery.` for already settled tag
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-8599
>                 URL: https://issues.apache.org/jira/browse/QPID-8599
>             Project: Qpid
>          Issue Type: Bug
>          Components: Broker-J
>    Affects Versions: qpid-java-broker-8.0.6
>            Reporter: Marco Geri
>            Assignee: Daniil Kirilyuk
>            Priority: Major
>
> Using ProtonJ2 client sender with Delivery Mode  AT_LEAST_ONCE, i.e.:
>  * Sender Settle Mode: Unsettled
>  * Receiver Settle Mode: First
>  * Pooled tag generator: when receiving a remote settle, a tag is pooled for 
> reuse in a next delivery
>  * Auto settle enabled: when receiving a remote settle, it settles the 
> delivery
> During some sending peaks, sometimes the client receives the server error: 
> _Delivery-tag 'X' is used by another unsettled delivery._
> I don't know in detail how it works (sorry if I'm wrong), but with some 
> debugging, it seems to happen something similar to this example:
>  * the client sends two delivery messages with tags "10" and "11"
>  * the client receives the remote settle and puts tags "10" and "11" to 
> reusable pooled tags
>  * meanwhile, a new message is ready to be delivered and the client sends in 
> this sequence the following messages: settle tag "10", settle tag "11", a new 
> delivery message with tag "10" (reusing the "10" tag) 
> When the BrokerJ receives this sequence it seems it processes all the 
> messages on the on "receive complete" event, with the 
> {{processPendingDispositions.}}
> But before doing it, it seems that it checks for an already used tag on a 
> single receive,  although if there is a "client settle message" for the tag 
> "10" in the pending dispositions,  it finds the tag "10" in the unsettled set 
> collection (ignoring that it will be removed from it in the "process pending 
> disposition"), giving the "Delivery `10` tag is used ..." error.
> I'm not an AMQP and BrokerJ expert and I don't know if I'm missing something 
> and this is expected behavior and if the problem should be resolved on the 
> client side. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to