<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/qpid/cpp/src/tests/cluster_test.cpp, branch qpid-3163</title>
<subtitle>git.apache.org: qpid.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/'/>
<entry>
<title>QPID-529: Priority queue implementation</title>
<updated>2011-02-10T10:12:41+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2011-02-10T10:12:41+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=8b8d70e010a2999ad5dd1590d41eb35d8091296a'/>
<id>8b8d70e010a2999ad5dd1590d41eb35d8091296a</id>
<content type='text'>
QPID-2104: LVQ enhancement

These both required some refactoring of the Queue class to allow cleaner implementation of different types of behaviour. The in-memory storage of messages is now abstracted out behind an interface specified by qpid::broker::Messages which qpid::broker::Queue uses. Different implementations of that are available for the standard FIFO queue, priority queues and LVQ (I have also separated out the 'legacy' implementation of LVQ from the new version driven by QPID-2104).



git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1069322 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QPID-2104: LVQ enhancement

These both required some refactoring of the Queue class to allow cleaner implementation of different types of behaviour. The in-memory storage of messages is now abstracted out behind an interface specified by qpid::broker::Messages which qpid::broker::Queue uses. Different implementations of that are available for the standard FIFO queue, priority queues and LVQ (I have also separated out the 'legacy' implementation of LVQ from the new version driven by QPID-2104).



git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1069322 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix test bug causing occasional failure of cluster_test.</title>
<updated>2010-06-24T17:19:24+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2010-06-24T17:19:24+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=98e99b9a91eb904df6f5a3c5180195e03dab7b4a'/>
<id>98e99b9a91eb904df6f5a3c5180195e03dab7b4a</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957639 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957639 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Cluster handle connection-negotiation phase in local broker.</title>
<updated>2010-06-08T15:31:31+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2010-06-08T15:31:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=4f6804221443259a89ff761f798d8c25b9cbffa7'/>
<id>4f6804221443259a89ff761f798d8c25b9cbffa7</id>
<content type='text'>
The connection negotiation phase up to the "open" or "open-ok" frame
establishes whether/what encryption to use for the rest of the
connection.

With this patch a cluster broker completes the initial negotiation
with its local clients and only then begins multicasting to other
brokers. The local broker decrypts if necessary and multicasts in the
clear.

This replaces a problematic locking scheme that was formerly in place
which caused deadlocks.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952692 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The connection negotiation phase up to the "open" or "open-ok" frame
establishes whether/what encryption to use for the rest of the
connection.

With this patch a cluster broker completes the initial negotiation
with its local clients and only then begins multicasting to other
brokers. The local broker decrypts if necessary and multicasts in the
clear.

This replaces a problematic locking scheme that was formerly in place
which caused deadlocks.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952692 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-2631: For blocking Bounds::expand() calls, only increase the current count when there is space. In SessionImpl::send() expand bounds before queueing frame. Expand bounds for all frames sent (including connection frames and cluster specific frames).</title>
<updated>2010-05-27T18:09:13+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2010-05-27T18:09:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=882b4c591fe13b1daf19eb65a8a2e2faf2bbb5b1'/>
<id>882b4c591fe13b1daf19eb65a8a2e2faf2bbb5b1</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948936 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948936 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Cluster + Security</title>
<updated>2010-05-14T08:56:45+00:00</updated>
<author>
<name>Michael Goulish</name>
<email>mgoulish@apache.org</email>
</author>
<published>2010-05-14T08:56:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=2d470f3f46eae7a36bcf6c81a3a0223c0edbd64c'/>
<id>2d470f3f46eae7a36bcf6c81a3a0223c0edbd64c</id>
<content type='text'>
-----------------------------------

* initial observation of a problem was a 2% failure rate in perftests
  of 20,000 messages against a cluster with security enabled.
  Problem was occasional receit of encrypted frames before the
  security codec had been enabled.  This is fixed with locking in
  cluster code (no new locks in broker code) and a callback that is
  fired by broker::ConnectionHandler::Handler to tell the cluster
  code when the opening handshake has finished.
  This was never a problem in the non-clustered broker before because
  everything happened in a single thread.

* the brokers that "shadow" the connection must not have null
  authenticators rather than real ones, so that they go through all
  the motions but don't do anythig.  Only the directly-connected
  broker can perform the security handshake.

* once the directly-connected broker receives the real user ID
  from its callback, it mcasts that ID to all other brokers.
  Otherwise the shadowing brokers will al think that the user ID
  is "anonymous".
  Check this by doing a substantial perftest, and using
      qpid-stat -c localhost:PORT
  to confirm that the brokers all have the same userID for the
  same connection.

* the user ID, negotiated during the Sasl security startup, is
   communicated from the directly connected broker to all other
   cluster brokers.

* If security is *not* being used, then this code should *not* tell
  the brokers anything about the userID -- or it will step on the value
  that is being set by other code pathways.

* test program at cpp/src/tests/cluster_authentication_soak is not yet
  fully automated -- run it with something like
  "sudo ./cluster_authentication_soak 500"



git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@944158 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
-----------------------------------

* initial observation of a problem was a 2% failure rate in perftests
  of 20,000 messages against a cluster with security enabled.
  Problem was occasional receit of encrypted frames before the
  security codec had been enabled.  This is fixed with locking in
  cluster code (no new locks in broker code) and a callback that is
  fired by broker::ConnectionHandler::Handler to tell the cluster
  code when the opening handshake has finished.
  This was never a problem in the non-clustered broker before because
  everything happened in a single thread.

* the brokers that "shadow" the connection must not have null
  authenticators rather than real ones, so that they go through all
  the motions but don't do anythig.  Only the directly-connected
  broker can perform the security handshake.

* once the directly-connected broker receives the real user ID
  from its callback, it mcasts that ID to all other brokers.
  Otherwise the shadowing brokers will al think that the user ID
  is "anonymous".
  Check this by doing a substantial perftest, and using
      qpid-stat -c localhost:PORT
  to confirm that the brokers all have the same userID for the
  same connection.

* the user ID, negotiated during the Sasl security startup, is
   communicated from the directly connected broker to all other
   cluster brokers.

* If security is *not* being used, then this code should *not* tell
  the brokers anything about the userID -- or it will step on the value
  that is being set by other code pathways.

* test program at cpp/src/tests/cluster_authentication_soak is not yet
  fully automated -- run it with something like
  "sudo ./cluster_authentication_soak 500"



git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@944158 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Use UnauthorizedAccessException for ACL violations rather than NotAllowedException</title>
<updated>2010-05-06T09:49:45+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2010-05-06T09:49:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=041f826462375ae24c0c0feec603b8f6b33453fe'/>
<id>041f826462375ae24c0c0feec603b8f6b33453fe</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@941636 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@941636 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Cluster: remove un-necessary code for config-seq.</title>
<updated>2010-03-31T16:52:50+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2010-03-31T16:52:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=34a8918500c2ca074771d00f832937fe4f87476d'/>
<id>34a8918500c2ca074771d00f832937fe4f87476d</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@929616 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@929616 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Cluster: fix update of failover exchange.</title>
<updated>2010-02-02T15:47:41+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2010-02-02T15:47:41+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=519072ddea713ad7a3a8dd2acb5962c099976d94'/>
<id>519072ddea713ad7a3a8dd2acb5962c099976d94</id>
<content type='text'>
During update the cluster was sending an extra update to the failover exchange.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@905676 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During update the cluster was sending an extra update to the failover exchange.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@905676 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix intermittent test error: cluster_test.cpp(1108): error in "testRelease": check browse(c3, "q", 5) == expected failed [ != m_1 m_2 m_3 m_4 m_5 ]</title>
<updated>2010-01-19T16:13:06+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2010-01-19T16:13:06+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=2d5ec7dce73cf2d0290fc6b68bc66f0135520ba0'/>
<id>2d5ec7dce73cf2d0290fc6b68bc66f0135520ba0</id>
<content type='text'>
This was a test issue, not a broker issue. What seems to have been happening:
 - start broker b0 &amp; send messages.
 - fork broker b1
 - line 1103 (lqSub.release(...)); executes against b0 _before_ b1 connects for update         lqSub.release(lqSub.getUnaccepted());
 - line 1108 browse() executes during the update.
 - update takes &gt; 0.5 secs for some reason, browse times out.

The fix is a synchronous flush in browse() which will wait for the broker to be responsive before trying to get the messages.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@900829 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was a test issue, not a broker issue. What seems to have been happening:
 - start broker b0 &amp; send messages.
 - fork broker b1
 - line 1103 (lqSub.release(...)); executes against b0 _before_ b1 connects for update         lqSub.release(lqSub.getUnaccepted());
 - line 1108 browse() executes during the update.
 - update takes &gt; 0.5 secs for some reason, browse times out.

The fix is a synchronous flush in browse() which will wait for the broker to be responsive before trying to get the messages.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@900829 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-2296: Cluster errors when using acquire-mode-not-acquired</title>
<updated>2009-12-22T14:22:17+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2009-12-22T14:22:17+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/qpid-python.git/commit/?id=c47b24aa512ed6595d55ceef24add405a30bad88'/>
<id>c47b24aa512ed6595d55ceef24add405a30bad88</id>
<content type='text'>
Replicate consumer's queue position to new cluster nodes.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@893175 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replicate consumer's queue position to new cluster nodes.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@893175 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
</feed>
