> On 2011-11-15 16:41:28, Gordon Sim wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java,
> >  line 787
> > <https://reviews.apache.org/r/2832/diff/1/?file=58392#file58392line787>
> >
> >     Are there any other locks acquired as part of the block here? If so are 
> > there any lock ordering issues where you could be introducing a deadlock?
> 
> rajith attapattu wrote:
>     Not that I could think of. The message-delivery-lock is taken to ensure 
> that no messages are being served while we start pulling them out of the 
> queue.
>     In my tests so far, I haven't encountered any issues. However I plan to 
> have more manual tests - ex. Trying to stop the connection while the message 
> consumers are in full flight.
> 
> Gordon Sim wrote:
>     What about the failover mutex? Could the release trigger a codepath that 
> attempts to acquire that? What about an asynchronous exception occurring 
> concurrently; would that ever need to acquire the message-delivery-lock?
> 
> rajith attapattu wrote:
>     Certainly possible as mentioned in the comment below. The failover and 
> the synchronous exceptions are things that could trigger a deadlock.
>     Testing is the best way to eliminate these possibilities. However IMO 
> acquiring the message-delivery-lock is a must to ensure unwanted interaction 
> between messages delivery & releasing.

Testing is certainly vital, however with threading issues a thorough analysis 
is as well given the non-deterministic nature of potential problems.


- Gordon


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


On 2011-11-15 15:36:36, rajith attapattu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/2832/
> -----------------------------------------------------------
> 
> (Updated 2011-11-15 15:36:36)
> 
> 
> 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
> -----
> 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
>  1202228 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
>  1202228 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java
>  1202228 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
>  1202228 
> 
> Diff: https://reviews.apache.org/r/2832/diff
> 
> 
> Testing
> -------
> 
> See PrefetchBehaviourTest#testConnectionStop for more details.
> 
> 
> Thanks,
> 
> rajith
> 
>

Reply via email to