<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/cpp/src/qpid/broker/SessionState.h, 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-5855: JAVA Client Can not recieve message with qpid ha cluster "Session exception occured while trying to commit"</title>
<updated>2014-08-22T14:13:14+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2014-08-22T14:13:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=af735b8dede9d8e8408dc3daff0ebcff4ff16b12'/>
<id>af735b8dede9d8e8408dc3daff0ebcff4ff16b12</id>
<content type='text'>
The problem: the java client sets the sync flag on tx.commit and then waits for
completion of the entire transaction. According to the 0-10 spec, this is
correct, the commit (or rollback) will not complete until all of the
transactional commands have completed. However the C++ broker was sometimes
completing a commit *before* one of the the corresponding enqueues. It issued
the completions up to the commit (because the commit is makred sync) but there
is a "hole" for the incomplete enqueue. The enqueue is not marked sync so when
this hole is filled no completion is sent and the client hangs.

Fix: make tx.commit a "sync point", that is it behaves like execution.sync and
is not completed till all preceeding commands are complete. Note tx.rollback
does not need modification as it is never completed asynchronously.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1619816 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem: the java client sets the sync flag on tx.commit and then waits for
completion of the entire transaction. According to the 0-10 spec, this is
correct, the commit (or rollback) will not complete until all of the
transactional commands have completed. However the C++ broker was sometimes
completing a commit *before* one of the the corresponding enqueues. It issued
the completions up to the commit (because the commit is makred sync) but there
is a "hole" for the incomplete enqueue. The enqueue is not marked sync so when
this hole is filled no completion is sent and the client hangs.

Fix: make tx.commit a "sync point", that is it behaves like execution.sync and
is not completed till all preceeding commands are complete. Note tx.rollback
does not need modification as it is never completed asynchronously.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1619816 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5275: HA transactions failing in qpid-cluster-benchmark</title>
<updated>2013-11-12T16:58:52+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-11-12T16:58:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=f87a61f06c3aa3d866cd3cc2fccf003276f6949a'/>
<id>f87a61f06c3aa3d866cd3cc2fccf003276f6949a</id>
<content type='text'>
The test was failing due to incorrect handling of the transaction lifecycle:
- Failing to handle the automatic rollback of the empty TX at session close.
- Deleting the tx-q before all backups were finished with it.

The fixes include
- Make tx-q auto-delete, deleted only when the TxReplicators cancel their subscriptions.
- Use markInUse/releaseFromUse on the primary to keep the tx-q until the primary is done.
- Count TxReplicators for auto-delete (unlike normal QueueReplicators)
- Improved error handling and log messages
- Handle *incoming* exceptions on a federation link by passing to ErrorListener
- QueueReplicator catches incoming not-found and resource-deleted exceptions
  - close the backup bridge, handle race between subscribe and delete.
- Simplify QueueSnapshots, remove need for snapshot map.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1541146 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test was failing due to incorrect handling of the transaction lifecycle:
- Failing to handle the automatic rollback of the empty TX at session close.
- Deleting the tx-q before all backups were finished with it.

The fixes include
- Make tx-q auto-delete, deleted only when the TxReplicators cancel their subscriptions.
- Use markInUse/releaseFromUse on the primary to keep the tx-q until the primary is done.
- Count TxReplicators for auto-delete (unlike normal QueueReplicators)
- Improved error handling and log messages
- Handle *incoming* exceptions on a federation link by passing to ErrorListener
- QueueReplicator catches incoming not-found and resource-deleted exceptions
  - close the backup bridge, handle race between subscribe and delete.
- Simplify QueueSnapshots, remove need for snapshot map.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1541146 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5284: ensure timestamp is added to the data that is persisted</title>
<updated>2013-11-01T10:33:30+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2013-11-01T10:33:30+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=40850c485859dd3b587428defef3af6d114d2d13'/>
<id>40850c485859dd3b587428defef3af6d114d2d13</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1537889 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@1537889 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5139: HA correct compile error on older C++ compilers.</title>
<updated>2013-10-30T17:21:31+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-10-30T17:21:31+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=ce2cfe8e608afa8a3199a39cbb3a3c6380f0cdce'/>
<id>ce2cfe8e608afa8a3199a39cbb3a3c6380f0cdce</id>
<content type='text'>
- Added constructors for AsyncCompletion::Callback so subclasses can be copied.
- Get rid of intrusive_ptr::reset

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1537187 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Added constructors for AsyncCompletion::Callback so subclasses can be copied.
- Get rid of intrusive_ptr::reset

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1537187 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5139: HA transactions block a thread, can deadlock the broker</title>
<updated>2013-10-29T15:23:49+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2013-10-29T15:23:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=4bb151616b69cad55b373846b5f5fca7c17c9f0d'/>
<id>4bb151616b69cad55b373846b5f5fca7c17c9f0d</id>
<content type='text'>
PrimaryTxObserver::prepare used to block pending responses from each backup. With
concurrent transactions this can deadlock the broker: once all worker threads
are blocked in prepare, responses from backups cannot be received.

This commit generalizes the async completion mechanism for messages to allow
async completion of arbitrary commands. It leaves the special-case code for
messages undisturbed but adds a second path (starting from
SessionState::handleCommand) for async completion of other commands.
In particular it implements tx.commit to allow async completion.

TxBuffer is now an AsyncCompletion and commitLocal() is split into
- startCommit() called by SemanticState::commit()
- endCommit() called when the commit command completes

TxAccept no longer holds pre-computed ranges, compute fresh each time.
- Avoid range iterators going out of date during a delayed commit.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1536754 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PrimaryTxObserver::prepare used to block pending responses from each backup. With
concurrent transactions this can deadlock the broker: once all worker threads
are blocked in prepare, responses from backups cannot be received.

This commit generalizes the async completion mechanism for messages to allow
async completion of arbitrary commands. It leaves the special-case code for
messages undisturbed but adds a second path (starting from
SessionState::handleCommand) for async completion of other commands.
In particular it implements tx.commit to allow async completion.

TxBuffer is now an AsyncCompletion and commitLocal() is split into
- startCommit() called by SemanticState::commit()
- endCommit() called when the commit command completes

TxAccept no longer holds pre-computed ranges, compute fresh each time.
- Avoid range iterators going out of date during a delayed commit.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1536754 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>fixing QPID-5108</title>
<updated>2013-09-05T07:29:36+00:00</updated>
<author>
<name>Pavel Moravec</name>
<email>pmoravec@apache.org</email>
</author>
<published>2013-09-05T07:29: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=2956e57b97b1f09155ea3dffd9aacfbedbf38d29'/>
<id>2956e57b97b1f09155ea3dffd9aacfbedbf38d29</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1520245 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@1520245 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4712: authorisation for AMQP 1.0 connections</title>
<updated>2013-06-25T13:28:15+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2013-06-25T13:28:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=35cb597c315b5bc3e17611cb40fe8492b0a4e45c'/>
<id>35cb597c315b5bc3e17611cb40fe8492b0a4e45c</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1496466 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@1496466 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4905: Stopped broker::Broker needing to refer to broker::Connection</title>
<updated>2013-06-19T14:26:11+00:00</updated>
<author>
<name>Andrew Stitcher</name>
<email>astitcher@apache.org</email>
</author>
<published>2013-06-19T14:26:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=3f6ca2bd3e2fe214e74f89b5847c37602ddf74cf'/>
<id>3f6ca2bd3e2fe214e74f89b5847c37602ddf74cf</id>
<content type='text'>
- Also removed ConnectionToken which didn't add anything over OwnershipToken

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1494640 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Also removed ConnectionToken which didn't add anything over OwnershipToken

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1494640 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4905: Tidy up broker::Connection</title>
<updated>2013-06-19T14:26:03+00:00</updated>
<author>
<name>Andrew Stitcher</name>
<email>astitcher@apache.org</email>
</author>
<published>2013-06-19T14:26:03+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=baf1fc7b0515aaca321bc553c29d4ff60d859500'/>
<id>baf1fc7b0515aaca321bc553c29d4ff60d859500</id>
<content type='text'>
- Clean up code for accounting for sent frames
- merged Connection and ConnectionState into Connection

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1494639 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Clean up code for accounting for sent frames
- merged Connection and ConnectionState into Connection

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1494639 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-4905: Tidy up</title>
<updated>2013-06-04T14:27:40+00:00</updated>
<author>
<name>Andrew Stitcher</name>
<email>astitcher@apache.org</email>
</author>
<published>2013-06-04T14:27:40+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=69aed09e38db75ccdd89c2146c066e60a6ab1011'/>
<id>69aed09e38db75ccdd89c2146c066e60a6ab1011</id>
<content type='text'>
- Remove unused function getBuffered() of ConnectionOutputHandler
- Stop SessionContext and AggregateOutput from needlessly implementing
  the OutputControl interface

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1489457 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Remove unused function getBuffered() of ConnectionOutputHandler
- Stop SessionContext and AggregateOutput from needlessly implementing
  the OutputControl interface

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