<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/qpid-python.git/qpid/cpp/src, branch trunk</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-7207: remove cpp and python subdirs from svn trunk, they have migrated to their own git repositories</title>
<updated>2016-07-05T21:55:35+00:00</updated>
<author>
<name>Robert Gemmell</name>
<email>robbie@apache.org</email>
</author>
<published>2016-07-05T21:55:35+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=f160cb6566c17945f7ebc4f3a752b2cc6a051685'/>
<id>f160cb6566c17945f7ebc4f3a752b2cc6a051685</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1751566 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@1751566 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7329: Merge branch 'github/pr/10' into trunk</title>
<updated>2016-06-28T21:32:06+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2016-06-28T21:32:06+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=ebb276cca41582b73223b55eff9f2d4386f4f746'/>
<id>ebb276cca41582b73223b55eff9f2d4386f4f746</id>
<content type='text'>
Closes #10

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

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750587 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7326: Memory bloat on HA primary broker</title>
<updated>2016-06-27T21:55:53+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2016-06-27T21:55:53+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=13525713a1f57c4228982c79029f7a5486ced0e7'/>
<id>13525713a1f57c4228982c79029f7a5486ced0e7</id>
<content type='text'>
Removed left-over code that was keeping queues in an unused map.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750417 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed left-over code that was keeping queues in an unused map.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750417 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7306: fix regression in earlier commit</title>
<updated>2016-06-27T17:09:25+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2016-06-27T17:09:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=122793f90e90b228d30af83e4c0ced3ad41cdec4'/>
<id>122793f90e90b228d30af83e4c0ced3ad41cdec4</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750390 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@1750390 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(disposition): support undeliverable-here in modified outcomes</title>
<updated>2016-06-27T15:56:42+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2016-06-27T15:56:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=590ac0b0c52a838b5cb1761b79d17d9b78256b2e'/>
<id>590ac0b0c52a838b5cb1761b79d17d9b78256b2e</id>
<content type='text'>
Previously, specifying `undeliverable-here` as `true` in a modified
outcome simply resulted in the message being rejected. This patch
adds tracking to the outgoing link management in order to not
redeliver messages to links that indicate that messages are not
deliverable there.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750369 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, specifying `undeliverable-here` as `true` in a modified
outcome simply resulted in the message being rejected. This patch
adds tracking to the outgoing link management in order to not
redeliver messages to links that indicate that messages are not
deliverable there.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750369 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7306: fix compilation error in previous commit</title>
<updated>2016-06-24T15:20:35+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2016-06-24T15:20:35+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=c077bea50c85a48731ecfd9e7f61f7c949b0749b'/>
<id>c077bea50c85a48731ecfd9e7f61f7c949b0749b</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1750123 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@1750123 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7306: Fix race conditions during Queue destruction.</title>
<updated>2016-06-22T20:41:55+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2016-06-22T20:41:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=7b8a91375dc0528e2c15686ab71c3647ac3e2f96'/>
<id>7b8a91375dc0528e2c15686ab71c3647ac3e2f96</id>
<content type='text'>
Stack traces indicate a Queue was being destroyed concurrently while still in
use by its ManagedObject.

ManagedObject holds a plain pointer to the Manageable object (e.g. Queue) it
belongs to.  The Manageable calls ManagedObject::resourceDestroy() when it is
deleted, but without any locking.

Added a locked wrapper class ManageablePtr so destroy is atomic with respect to
other calls via ManageablePtr, calls after pointer is reset to 0 in destroy()
are skipped.

Call resourceDestroy() in Queue::~Queue if it was not called already. This is
probably redundant given given the fixes above but can't hurt.

Queue::destroyed() was also being called without locking and could be called
concurrrently, e.g. if auto-delete happens concurrently with delete via QMF or
by a 0-10 client. Moved the destroyed() call into QueueRegistry::destroy(),
using QueueRegistry lock to guarantee it is called exactly once.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749782 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Stack traces indicate a Queue was being destroyed concurrently while still in
use by its ManagedObject.

ManagedObject holds a plain pointer to the Manageable object (e.g. Queue) it
belongs to.  The Manageable calls ManagedObject::resourceDestroy() when it is
deleted, but without any locking.

Added a locked wrapper class ManageablePtr so destroy is atomic with respect to
other calls via ManageablePtr, calls after pointer is reset to 0 in destroy()
are skipped.

Call resourceDestroy() in Queue::~Queue if it was not called already. This is
probably redundant given given the fixes above but can't hurt.

Queue::destroyed() was also being called without locking and could be called
concurrrently, e.g. if auto-delete happens concurrently with delete via QMF or
by a 0-10 client. Moved the destroyed() call into QueueRegistry::destroy(),
using QueueRegistry lock to guarantee it is called exactly once.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749782 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7306: Conditional compile mismatch in broker and common libs.</title>
<updated>2016-06-22T20:41:49+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2016-06-22T20:41: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=e1d9be1b3590c79a0b2a6b6ad4cd3e6a65877401'/>
<id>e1d9be1b3590c79a0b2a6b6ad4cd3e6a65877401</id>
<content type='text'>
Removed _IN_QPID_BROKER compile definition:

Inconsistently set for libqpidcommon (compiled .cpp files) and libqpidbroker (uses .h) files
  - The broker has a binary incompatible notion of what is in the library.

It sort-of works by accident:
   - shared_ptr&lt;T&gt; only contains a T*, the mismatch is effectively doing reinterpret_cast&lt;T*&gt;
   - plain T* works for op-&gt;, but doesn't guarantee no concurrent deletes.
   - we create and destroy shared_ptr in libraries with _IN_QPID_BROKER set so
     we get cleanup, and no cores if we're lucky but there is limited protection from races.

Was only used by management:
  - I think exposing non-shared ptr GetObject was a feature that never materialized,
  - if not we need a separate function or class for non-shared-ptr users.

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

Inconsistently set for libqpidcommon (compiled .cpp files) and libqpidbroker (uses .h) files
  - The broker has a binary incompatible notion of what is in the library.

It sort-of works by accident:
   - shared_ptr&lt;T&gt; only contains a T*, the mismatch is effectively doing reinterpret_cast&lt;T*&gt;
   - plain T* works for op-&gt;, but doesn't guarantee no concurrent deletes.
   - we create and destroy shared_ptr in libraries with _IN_QPID_BROKER set so
     we get cleanup, and no cores if we're lucky but there is limited protection from races.

Was only used by management:
  - I think exposing non-shared ptr GetObject was a feature that never materialized,
  - if not we need a separate function or class for non-shared-ptr users.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749781 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7306: Memory management error in Link/Bridge</title>
<updated>2016-06-22T20:41:43+00:00</updated>
<author>
<name>Alan Conway</name>
<email>aconway@apache.org</email>
</author>
<published>2016-06-22T20:41:43+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=c3c3bc4016270dd75b4c6a1e6831408cd4a5d055'/>
<id>c3c3bc4016270dd75b4c6a1e6831408cd4a5d055</id>
<content type='text'>
qpid::broker Link and Bridge use Connection::requestIOProcessing() to register
callbacks in the connection thread. They were binding a plain "this" pointer to
the callback, but the classes are managed by boost::shared_ptr so if all the
shared_ptr were released, the callback could happen on a dangling pointer.

This fix uses boost::weak_ptr in the callbacks, so if all shared_ptr instances
are released, we don't use the dead pointer.

Link::destroy cannot be skipped, so use a shared_ptr for that.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749780 13f79535-47bb-0310-9956-ffa450edef68
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
qpid::broker Link and Bridge use Connection::requestIOProcessing() to register
callbacks in the connection thread. They were binding a plain "this" pointer to
the callback, but the classes are managed by boost::shared_ptr so if all the
shared_ptr were released, the callback could happen on a dangling pointer.

This fix uses boost::weak_ptr in the callbacks, so if all shared_ptr instances
are released, we don't use the dead pointer.

Link::destroy cannot be skipped, so use a shared_ptr for that.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749780 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
<entry>
<title>QPID-7302: Restart delayed auto-delete timer if the queue is declared</title>
<updated>2016-06-15T08:47:59+00:00</updated>
<author>
<name>Gordon Sim</name>
<email>gsim@apache.org</email>
</author>
<published>2016-06-15T08:47:59+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/qpid-python.git/commit/?id=7ab8ebde50308f76428359c0120473c4d491b55a'/>
<id>7ab8ebde50308f76428359c0120473c4d491b55a</id>
<content type='text'>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1748523 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@1748523 13f79535-47bb-0310-9956-ffa450edef68
</pre>
</div>
</content>
</entry>
</feed>
