You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by rajith attapattu <ra...@gmail.com> on 2012/01/09 20:27:40 UTC

Re: Review Request: QPID-3604 - If connection is started and stopped, the client may get more messages than required by the prefetch value

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2832/
-----------------------------------------------------------

(Updated 2012-01-09 19:27:40.039273)


Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, and Oleksandr Rudyy.


Changes
-------

This reworked patch addresses some of the concerns raised with the original patch.
The message-delivery lock is still taken to ensure that no message delivery is attempted while the 'stopping' is in progress.
IMO this is a nessacery evil.

The code now drains individual consumer queues as well as the dispatch queue (via syncDipatchQueue method) and releases both unacked and prefetched messages, while only the former being marked redelivered.
Also all of these transfers are being marked as completed to ensure credits don't dry up.


Summary
-------

This attempts to fix one of the issues related to the handling of Message credits. See QPID-3602 for an overall picture of the various issues.

This particular patch does the following.
1. When the connection is stopped, it sends message.stop() & releases all messages in the prefetch buffer.
2. It will also release any messages (that were in flight) that comes after the connection is stopped. (*)

(*) This interferes with the immediate_prefetch feature. However I don't know if immediate prefetch is really required in the 0-10 path.

As always comments, suggestions & criticisms are equally welcomed.


This addresses bug QPID-3604.
    https://issues.apache.org/jira/browse/QPID-3604


Diffs (updated)
-----

  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java 1229312 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1229312 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java 1229312 

Diff: https://reviews.apache.org/r/2832/diff


Testing
-------

See PrefetchBehaviourTest#testConnectionStop for more details.


Thanks,

rajith


Re: Review Request: QPID-3604 - If connection is started and stopped, the client may get more messages than required by the prefetch value

Posted by rajith attapattu <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2832/
-----------------------------------------------------------

(Updated 2012-01-10 03:52:44.305560)


Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, and Oleksandr Rudyy.


Summary
-------

This attempts to fix one of the issues related to the handling of Message credits. See QPID-3602 for an overall picture of the various issues.

This particular patch does the following.
1. When the connection is stopped, it sends message.stop() & releases all messages in the prefetch buffer.
2. It will also release any messages (that were in flight) that comes after the connection is stopped. (*)

(*) This interferes with the immediate_prefetch feature. However I don't know if immediate prefetch is really required in the 0-10 path.

As always comments, suggestions & criticisms are equally welcomed.


This addresses bug QPID-3604.
    https://issues.apache.org/jira/browse/QPID-3604


Diffs (updated)
-----

  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java 1229466 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1229466 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java 1229466 

Diff: https://reviews.apache.org/r/2832/diff


Testing
-------

See PrefetchBehaviourTest#testConnectionStop for more details.


Thanks,

rajith