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

Rob Godfrey resolved QPID-643.
------------------------------

    Resolution: Fixed

> CSDM causes duplicate message delivery.
> ---------------------------------------
>
>                 Key: QPID-643
>                 URL: https://issues.apache.org/jira/browse/QPID-643
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M2, M2.1
>            Reporter: Martin Ritchie
>            Assignee: Martin Ritchie
>             Fix For: M2
>
>         Attachments: QPID-XXX-CSDM-CausesDuplicateDelivery.patch
>
>
>                             // This can currently occur because of the 
> recursive call below
>                             // During unit tests the send can occur
>                             // client then rejects
>                             // this reject then releases the message by the 
> time the
>                             // if(!msg.isTaken()) call is made below
>                             // the message has been released so that thread 
> loops to send the message again
>                             // of course by the time it gets back to here. 
> the thread that released the
>                             // message is now ready to send it. Here is a 
> sample trace for reference
> //1192627162613:Thread[pool-917-thread-4,5,main]:CSDM:delivery:(true)message:Message[(HC:5529738
>  ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=null}:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=41, 
> session=anonymous(5050419), resendQueue=false]
> //1192627162613:Thread[pool-917-thread-4,5,main]:Msg:taken:Q:Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=41, 
> session=anonymous(5050419), resendQueue=false]:this:Message[(HC:5529738 
> ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=null}
> //1192627162613:Thread[pool-917-thread-4,5,main]:28398657 Sent :dt:214 
> msg:(HC:5529738 ID:145 Ref:1)
> //1192627162613:Thread[pool-917-thread-2,5,main]:Reject message 
> by:[channel=Channel: id 1, transaction mode: true, prefetch marks: 2500/5000, 
> consumerTag=41, session=anonymous(5050419), resendQueue=false]
> //1192627162613:Thread[pool-917-thread-2,5,main]:Releasing 
> Message:(HC:5529738 ID:145 Ref:1)
> //1192627162613:Thread[pool-917-thread-2,5,main]:Msg:Release:Q:Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326:This:Message[(HC:5529738
>  ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=41, 
> session=anonymous(5050419), resendQueue=false]}
> //1192627162613:Thread[pool-917-thread-2,5,main]:CSDM:delivery:(true)message:Message[(HC:5529738
>  ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=null}:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=33, 
> session=anonymous(26960027), resendQueue=false]
> //1192627162629:Thread[pool-917-thread-4,5,main]:CSDM:suspended: 
> Message((HC:5529738 ID:145 Ref:1)) has not been taken so recursing!: 
> Subscriber:28398657
> //1192627162629:Thread[pool-917-thread-4,5,main]:CSDM:delivery:(true)message:Message[(HC:5529738
>  ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=null}:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=33, 
> session=anonymous(26960027), resendQueue=false]
> //1192627162629:Thread[pool-917-thread-2,5,main]:Msg:taken:Q:Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=33, 
> session=anonymous(26960027), resendQueue=false]:this:Message[(HC:5529738 
> ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=false} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=null}
> //1192627162629:Thread[pool-917-thread-2,5,main]:25386607 Sent :dt:172 
> msg:(HC:5529738 ID:145 Ref:1)
> //1192627162629:Thread[pool-917-thread-4,5,main]:Msg:taken:Q:Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326:sub:[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=33, 
> session=anonymous(26960027), resendQueue=false]:this:Message[(HC:5529738 
> ID:145 Ref:1)]: 145; ref count: 1; taken for queues: 
> {Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=true} by 
> Subs:{Queue(queue-596fb10e-2968-4e51-a751-1e6643bf9dd6)@16017326=[channel=Channel:
>  id 1, transaction mode: true, prefetch marks: 2500/5000, consumerTag=33, 
> session=anonymous(26960027), resendQueue=false]}
>                             // Note: In the last request to take the message 
> from thread 4,5 the message has been
>                             // taken by the previous call done by thread 2,5

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to