<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/cpp/src/qpid/broker/SessionState.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-6087: QMF Session name to contain user ID for AMQP 0-10</title>
<updated>2014-09-12T07:54:13+00:00</updated>
<author>
<name>Pavel Moravec</name>
<email>pmoravec@apache.org</email>
</author>
<published>2014-09-12T07:54:13+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=7f26a996504f13337bdf4cd29cb11f47c0cbf85f'/>
<id>7f26a996504f13337bdf4cd29cb11f47c0cbf85f</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1624473 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@1624473 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<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-5929]: Mark deprecated QMF fields as Deprecated and do some relevant code cleanup</title>
<updated>2014-07-29T10:22:17+00:00</updated>
<author>
<name>Pavel Moravec</name>
<email>pmoravec@apache.org</email>
</author>
<published>2014-07-29T10:22:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=facc1b3322a796c808b965e0628317c10f25e681'/>
<id>facc1b3322a796c808b965e0628317c10f25e681</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614301 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@1614301 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5910</title>
<updated>2014-07-22T12:34:26+00:00</updated>
<author>
<name>Michael Goulish</name>
<email>mgoulish@apache.org</email>
</author>
<published>2014-07-22T12:34:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=5d488c6754512bdc6479ee6d9ec2d2a92a4f1f1c'/>
<id>5d488c6754512bdc6479ee6d9ec2d2a92a4f1f1c</id>
<content type='text'>
The previous way of computing required credit was apparently
pretty slow -- perhaps because it is doing some  unnceessary
copying down in its guts.  (Which theory I did not prove.)
And it was running while a lock was held, which caused a
significant throughput regression (which was reported as an
enormous latency regression.)
The simpler means of calculating credit in this diff removes
most of the problem.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612559 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous way of computing required credit was apparently
pretty slow -- perhaps because it is doing some  unnceessary
copying down in its guts.  (Which theory I did not prove.)
And it was running while a lock was held, which caused a
significant throughput regression (which was reported as an
enormous latency regression.)
The simpler means of calculating credit in this diff removes
most of the problem.


git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612559 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5850: Support for long session names (patch from Ernie Allen)</title>
<updated>2014-07-16T14:09:41+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2014-07-16T14:09:41+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=55bdf2c5cd9e0a9d4ea161204b50ef8e76eb15f9'/>
<id>55bdf2c5cd9e0a9d4ea161204b50ef8e76eb15f9</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611016 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@1611016 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5748:  [C++ broker] Make Queue::purgeExpired more efficient; remove ExpiryPolicy</title>
<updated>2014-05-28T07:16:57+00:00</updated>
<author>
<name>Pavel Moravec</name>
<email>pmoravec@apache.org</email>
</author>
<published>2014-05-28T07:16:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=6a7554a2ceb02bcc8f3f81f40d2421672aab60b9'/>
<id>6a7554a2ceb02bcc8f3f81f40d2421672aab60b9</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1597931 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@1597931 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-5783: Share immutable state between copies of a message. Avoid using memory for annotations unless actually required.</title>
<updated>2014-05-23T16:10:27+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2014-05-23T16:10: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=0c839dc7a1ca94f91dfda29134c3feffe3d6d3d5'/>
<id>0c839dc7a1ca94f91dfda29134c3feffe3d6d3d5</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1597121 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@1597121 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>
</feed>
