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


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