<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/cpp/src/qpid/broker/QueueRegistry.cpp, branch QPID-6125-ProtocolRefactoring</title>
<subtitle>git.apache.org: qpid.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/'/>
<entry>
<title>QPID-5084: Track durable queue ownership across restarts; a patch from Pavel Moravec and Ernie Allen</title>
<updated>2013-09-23T13:38:45+00:00</updated>
<author>
<name>Justin Ross</name>
<email>jross@apache.org</email>
</author>
<published>2013-09-23T13:38:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=51bd1f7bfb650098273abf8dbb31941284eec950'/>
<id>51bd1f7bfb650098273abf8dbb31941284eec950</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1525587 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/qpid@1525587 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5132: HA crash in test_tx_join_leave caused by double delete of queue. </title>
<updated>2013-09-11T20:53:22+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-09-11T20:53:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=2ca262d190f60defaf13e56b8d44f4f607c06649'/>
<id>2ca262d190f60defaf13e56b8d44f4f607c06649</id>
<content type='text'>
Fix crash caused by double-delete of transaction queue when a broker joins while
a transaction is in progress.

- Ignore mode for non-participants in TX.
- Try/catch around queue &amp; exchange deletion.
- Consistent use of QueueRegistry::get when queues are required.
- Remove unnecessary exchange delete warning.
- Remove HaBroker::delete, use realm@username when deleting queues.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1522031 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix crash caused by double-delete of transaction queue when a broker joins while
a transaction is in progress.

- Ignore mode for non-participants in TX.
- Try/catch around queue &amp; exchange deletion.
- Consistent use of QueueRegistry::get when queues are required.
- Remove unnecessary exchange delete warning.
- Remove HaBroker::delete, use realm@username when deleting queues.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1522031 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4327: Renamed ConfigurationObserver as BrokerObserver.</title>
<updated>2013-08-01T20:26:45+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-08-01T20:26:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=b9cb8ddca6366a256e292e02f8864462c19538e6'/>
<id>b9cb8ddca6366a256e292e02f8864462c19538e6</id>
<content type='text'>
This class really was intended as a observer for broker-level events which
includes configuration but may in future include other non-configuration events
such as transactions.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509420 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This class really was intended as a observer for broker-level events which
includes configuration but may in future include other non-configuration events
such as transactions.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509420 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4630: HA Fix starting from persistent store.</title>
<updated>2013-03-07T17:25:47+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-03-07T17:25:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=d1a74e579f1c61afe7485e3f42767502d43f7623'/>
<id>d1a74e579f1c61afe7485e3f42767502d43f7623</id>
<content type='text'>
This was implemented in r1390123 but broken by subsequent changes.

When re-starting a persistent HA cluster, the broker that becomes primary keeps
its recovered queues while backup brokers discard their recovered queues and
catch up from the primary.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1453971 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was implemented in r1390123 but broken by subsequent changes.

When re-starting a persistent HA cluster, the broker that becomes primary keeps
its recovered queues while backup brokers discard their recovered queues and
catch up from the primary.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1453971 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>Bug 886656 - HA backup broker does not properly increment the alternate exchange user count</title>
<updated>2012-12-20T18:28:58+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2012-12-20T18:28:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=7866208dce8ef942a50cbe6ea5820b63dea19229'/>
<id>7866208dce8ef942a50cbe6ea5820b63dea19229</id>
<content type='text'>
Set alternate exchange in-use counters correctly on backup brokers.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424617 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set alternate exchange in-use counters correctly on backup brokers.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424617 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4428: HA add UUID tag to avoid using an out of date queue/exchange.</title>
<updated>2012-11-14T16:04:04+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2012-11-14T16:04:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=30abd1273d8a256e91026432811a957e84193a27'/>
<id>30abd1273d8a256e91026432811a957e84193a27</id>
<content type='text'>
Imagine a cluster with primary A and backups B and C. A queue Q is created on A
and replicated to B, C. Now A dies and B takes over as primary. Before C can
connect to B, a client destroys Q and creates a new queue with the same name.
When B connects it sees Q and incorrectly assumes it is the same Q that it has
already replicated. Now C has an inconsistent replica of Q.

The fix is to tag queues/exchanges with a UUID so a backup can tell if a queue
is not the same as the one it has already replicated, even if the names are the
same.  This all also applies to exchanges.

- Minor imrovements to printing UUIDs in a FieldTable.
- Fix comparison of void Variants, added operator !=

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1409241 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Imagine a cluster with primary A and backups B and C. A queue Q is created on A
and replicated to B, C. Now A dies and B takes over as primary. Before C can
connect to B, a client destroys Q and creates a new queue with the same name.
When B connects it sees Q and incorrectly assumes it is the same Q that it has
already replicated. Now C has an inconsistent replica of Q.

The fix is to tag queues/exchanges with a UUID so a backup can tell if a queue
is not the same as the one it has already replicated, even if the names are the
same.  This all also applies to exchanges.

- Minor imrovements to printing UUIDs in a FieldTable.
- Fix comparison of void Variants, added operator !=

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1409241 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4394: HA QMF events out of order</title>
<updated>2012-11-01T13:42:36+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2012-11-01T13:42:36+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=c85f022a965846ee0223ed14e2a6acda0d7faffc'/>
<id>c85f022a965846ee0223ed14e2a6acda0d7faffc</id>
<content type='text'>
QMF create/delete events for auto-delete queues can be generated out-of-order
because they are not regulated by any lock. This creates problems for HA
replication. This commit does 2 things:

1. Dispatch QMF events via a pollable queue. Events are encoded in the thread
calling raiseEvent then put on a PollableQueue to be dispatched in a separate thread.
This allows us to move the raiseEvent calls inside registry locks to ensure
they are ordered.

2. Move queue create and delete raiseEvent calls inside the queue registry
lock so they are executed in order.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1404590 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QMF create/delete events for auto-delete queues can be generated out-of-order
because they are not regulated by any lock. This creates problems for HA
replication. This commit does 2 things:

1. Dispatch QMF events via a pollable queue. Events are encoded in the thread
calling raiseEvent then put on a PollableQueue to be dispatched in a separate thread.
This allows us to move the raiseEvent calls inside registry locks to ensure
they are ordered.

2. Move queue create and delete raiseEvent calls inside the queue registry
lock so they are executed in order.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1404590 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4234: ensure configuration observers see queue deletion</title>
<updated>2012-08-16T13:41:39+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2012-08-16T13:41:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=0ecd212390cfe121dd6452c4c2ba2ea9a23c9102'/>
<id>0ecd212390cfe121dd6452c4c2ba2ea9a23c9102</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1373831 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/qpid@1373831 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4178: broker refactoring</title>
<updated>2012-08-10T12:04:27+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2012-08-10T12:04:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=20e2bf07e12352f7ec08b39a3972b9a0d797c2fb'/>
<id>20e2bf07e12352f7ec08b39a3972b9a0d797c2fb</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1371676 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/qpid@1371676 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4144 HA broker deadlocks on broker::QueueRegistry lock and ha::Primary lock</title>
<updated>2012-07-17T17:39:54+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2012-07-17T17:39:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=ceac54f1234a9dfbc551daaad3c3ad02e4b82329'/>
<id>ceac54f1234a9dfbc551daaad3c3ad02e4b82329</id>
<content type='text'>
Running tests repeatedly, the broker deadlocked with the attached stack trace.

The problem call sequences are:
1. QueueRegistry::destroy takes QueuerRegistry lock &gt; ConfigurationObserver::queueDestroy &gt; ha::Primary::queueDestroy takes Primary lock.
2. ConnectionObserver::opened cals Primary::opened lock&gt; RemoteBackup&gt;getQueues().eachQueue

This patch breaks the deadlock at both ends: QueueRegistry no longer holds the lock across the observer call and Primary does not hold the lock across eachQueue.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1362584 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Running tests repeatedly, the broker deadlocked with the attached stack trace.

The problem call sequences are:
1. QueueRegistry::destroy takes QueuerRegistry lock &gt; ConfigurationObserver::queueDestroy &gt; ha::Primary::queueDestroy takes Primary lock.
2. ConnectionObserver::opened cals Primary::opened lock&gt; RemoteBackup&gt;getQueues().eachQueue

This patch breaks the deadlock at both ends: QueueRegistry no longer holds the lock across the observer call and Primary does not hold the lock across eachQueue.

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