| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Problem was a missing Py_INCREF in cpp/include/qpid/swig_python_typemaps.i
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1626887 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with failover.
This is partly not-a-bug, there is a client error handling issue that has been
corrected.
qpid-txtest2 initializes a queue with messages at the start and drains the
queues at the end. These operations are *not transactional*. Therefore
duplicates are expected if there is a failover during initialization or
draining. When duplicates were observed, there was indeed a failover at one of
these times.
Making these operations transactional is not enough to pass, now we see the test
fail with "no messages to fetch". This is explained as follows:
If there is a failover during a transaction, TransactionAborted is raised. The
client assumes the transaction was rolled back and re-plays it. However, if the
failover occurs at a critical point *after* the client has sent commit
but *before* it has received a response, then the the client *does not know*
whether the transaction was committed or rolled-back on the new primary.
Re-playing in this case can duplicate the transaction. Each transaction moves
messages from one queue to another so as long as transactions are atomic the
total number of messages will not change. However, if transactions are
duplicated, a transactional session may try to move more messages than exist on
the queue, hence "no messages to fetch". For example if thread 1 moves N
messages from q1 to q2, and thread 2 tries to move N+M messages back, then
thread 2 will fail.
This problem has been corrected as follows: C++ and python clients now raise the
following exceptions:
- TransactionAborted: The transaction has definitely been rolled back due to a
connection failure before commit or a broker error (e.g. a store error) during commit.
It can safely be replayed.
- TransactionUnknown: The transaction outcome is unknown because the connection
failed at the critical time. There's no simple automatic way to know what
happened without examining the state of the broker queues.
Unfortunately With this fix qpid-txtest2 is no longer useful test for TX
failover because it regularly raises TransactionUnknown and there's not much we
can do with that.
A better test of TX atomicity with failover is to run a pair of
qpid-send/qpid-receive with fail-over and verify that the number of
enqueues/dequeues and message depth are a multiple of the transaction size. See
the JIRA for such a test. (Note these test also sometimes raise
TransactionUnknown but it doesn't matter since all we are checking is that
messages go on and off the queues in multiple of the TX size.) )
Note: the original bug also reported seeing missing messages from
qpid-txtest2. I don't have a good explanation for that but since the
qpid-send/receive test shows that transactions are atomic I am going to let that
go for now.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1621211 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1612858 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1608578 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1606929 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
qpid.datatypes is not found.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605920 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605429 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605426 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
throwing exception
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1591300 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
This is due to doubles be cast as floats when passed into the Variant
type causing the loss of value.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1587267 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The HA tests were using only AMQP 0-10.
Modified the tests to use AMQP 1.0 if available (still use 0-10 if 1.0 is not available)
Fixed bugs uncovered both in the tests and in the AMQP 1.0 implementation.
Summary of changes:
- brokertest.py: configurable support for of swig vs. native and amqp0-10 vs. 1.0
- default to swig+amqp1.0 if swig is available, native+amqp0-10 otherwise
- qpidtoollibs/broker.py: enable use of swig client with BrokerAgent
- Swig python client:
- support for passing client_properties/properties.
- expose AddressHelper pn_data read/write as PnData helper class
- set sender/receiver capacity on creation
- limited disposition support - rejected messages.
- support for additional timeout parameters
- expose messaging::Logger, allow log configuration to be set from python.
- ha_tests.py:
- bind, delete policies not supported by AMQP 1.0, switched to using BrokerAgent QMF.
- pass protocol:amqp1.0 connection-option to c++ test clients (qpid-send, qpid-receive)
- TX tests forsce use of 0-10 protocol (but still with Swig client if enabled.)
- Broker fixes:
- Queue::Settings::isTemporary was set in the 0-10 SessionAdapter, moved to Broker::createQueue.
- broker::amqp::Session was always setting an exclusive owner in createQueue
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1585588 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
- use it for qpid::messaging::Session::nextReceiver to ensure that
closing a connection/session can be distinguished.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1579367 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
Changed the swig descriptors so that they use a constant format string.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565651 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
- Correctly export LoggerOutput virtual destructor for Visual Studio
- Add new APIs into the API specification
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1555245 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1555202 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
Allow for addition of istream operator in future.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1552780 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1552476 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
used by applications
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1545368 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1536903 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
Contributed by Hao Chang Yu <hyu@redhat.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529269 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
specialisations
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1525706 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1520673 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1520552 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
impl more closely
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1520416 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
- Potentially an ABI change but noone can really have used this for anything.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1516551 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
- Only qpidmessaging and qpidtypes libraries are affected
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1516549 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
This reverts commit e9abca572cf1845bd3ad25238e3edbeef10e61a6.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513818 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
This reverts commit 87a60f02cfe49d99fda6d867108c3c7c6d1ad122.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513817 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513624 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513536 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1513256 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
Now, by default, all strings will come out of the dynamic languages and
be encoded using UTF-8.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1512482 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
them)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1511483 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1510597 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
| |
Backups send prepare messages to primary, primary delays completion of prepare
till all are prepared (or there is a failure).
This is NOT the production solution - blocking could cause a deadlock. We need
to introduce asynchronous completion of prepare without blocking. This
interim solution allows testing on other aspects of TX support.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509424 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates
transaction events on a tx-replication-queue. On the backup a TxReplicator
receives the events and constructs a TxBuffer equivalent to the one in the
primary.
Unfinished:
- Primary does not wait for backups to prepare() before committing.
- All connected backups are assumed to be in the transaction, there are race
conditions around brokers joining/leavinv where this assumption is invalid.
- Need more tests.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509423 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
(missed out from earlier commit)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1508915 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
- Since we removed a whole lot of old API code we can drastically cut
down on the header files that we export.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1507469 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
QPID-4941: Remove qmf1 console examples
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1507467 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
- Remove qmf1 engine code
- Remove qmf1 language bindings
- Remove qmf1 agent code (it depends on engine)
- Fix up cmake to build
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1507464 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1498926 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1496467 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
Missing EXTERN declaration in types/Uuid.h.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1494290 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously HA code used queue sequence numbers to identify messasges.
This assumes that message sequence is identical on primary and backup.
Implementing new features (for example transactions) requires that we tolerate
ordering differences between primary and backups.
This patch introduces a new, queue-scoped HA sequence number managed by the HA
plugin. The HA ID is set *before* the message is enqueued and assigned a queue
sequence number. This means it is possible to identify messages before they are
enqueued, e.g. messages in an open transaction.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1493771 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1485510 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1483138 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
| |
Marked the VariantToPerl() method in swig_perl_typemaps.i as returning a
new object, which indicates to the Perl bindings that it needs to keep
track of the return value for garbage collection.
Also removed the Swig 1.3.32 minimum restriction to enable building on
RHEL5 systems.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1481021 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
description of the 'protocol' option
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1479855 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1477800 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
Reviewed at https://reviews.apache.org/r/10799/
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1476409 13f79535-47bb-0310-9956-ffa450edef68
|