You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2011/11/18 22:02:51 UTC

[jira] [Commented] (QPID-3269) Concurrently executing connections are allowed to use the same client ID

    [ https://issues.apache.org/jira/browse/QPID-3269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13153118#comment-13153118 ] 

jiraposter@reviews.apache.org commented on QPID-3269:
-----------------------------------------------------


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

Review request for Alan Conway, Kenneth Giusti, Robbie Gemmell, and Keith Wall.


Summary
-------

The c++ broker does not track the actual credit window as distinct from the remaining credit. This means that when a message-stop is received followed by a message-flow, the total number of outstanding, uncompleted messages for the subscription is larger than the window. Fixing the corner cases requires tracking some extra state in window mode. This patch modifies thing s to track the window size and the current used credit in that case. (In explicit mode we just track the available credit as before). I've moved all the credit logic out into its own pair of files and attempted to reduce a lot of the repetitiveness (once the changes needed to address the issue in the JIRA, the code was even messier than before).

The extra state also needs to be communicated to cluster updatees, so there is a small modification to the update process and one of the update commands.


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


Diffs
-----

  /trunk/qpid/cpp/src/CMakeLists.txt 1203231 
  /trunk/qpid/cpp/src/Makefile.am 1203231 
  /trunk/qpid/cpp/src/qpid/broker/Credit.h PRE-CREATION 
  /trunk/qpid/cpp/src/qpid/broker/Credit.cpp PRE-CREATION 
  /trunk/qpid/cpp/src/qpid/broker/SemanticState.h 1203231 
  /trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp 1203231 
  /trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp 1203231 
  /trunk/qpid/cpp/src/qpid/cluster/Connection.h 1203231 
  /trunk/qpid/cpp/src/qpid/cluster/Connection.cpp 1203231 
  /trunk/qpid/cpp/src/qpid/cluster/UpdateClient.cpp 1203231 
  /trunk/qpid/cpp/xml/cluster.xml 1203231 
  /trunk/qpid/python/qpid/testlib.py 1203231 
  /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/message.py 1203231 

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


Testing
-------

New test from Keith included in the patch. All existing tests pass.


Thanks,

Gordon


                
>  Concurrently executing connections are allowed to use the same client ID
> -------------------------------------------------------------------------
>
>                 Key: QPID-3269
>                 URL: https://issues.apache.org/jira/browse/QPID-3269
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.6, 0.8, 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>            Priority: Minor
>             Fix For: 0.11
>
>
> Section 4.3.2 of the JMS spec says that the JMS provider 
> should prevent concurrently executing clients from using the same client id.
> Qpid JMS client allows two connections to be created using the same client id.
> How reproducible:
> Always
> Steps to Reproduce:
> 1. Create two connections with the same client ID.
> 2. Observe that there are no exceptions being thrown.
> Actual results:
> No exception being thrown.
> Expected results:
> An exception should be thrown.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org