| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1519806 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
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1424139 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
QPID-2104: LVQ enhancement
These both required some refactoring of the Queue class to allow cleaner implementation of different types of behaviour. The in-memory storage of messages is now abstracted out behind an interface specified by qpid::broker::Messages which qpid::broker::Queue uses. Different implementations of that are available for the standard FIFO queue, priority queues and LVQ (I have also separated out the 'legacy' implementation of LVQ from the new version driven by QPID-2104).
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1069322 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957639 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The connection negotiation phase up to the "open" or "open-ok" frame
establishes whether/what encryption to use for the rest of the
connection.
With this patch a cluster broker completes the initial negotiation
with its local clients and only then begins multicasting to other
brokers. The local broker decrypts if necessary and multicasts in the
clear.
This replaces a problematic locking scheme that was formerly in place
which caused deadlocks.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952692 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
count when there is space. In SessionImpl::send() expand bounds before queueing frame. Expand bounds for all frames sent (including connection frames and cluster specific frames).
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948936 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-----------------------------------
* initial observation of a problem was a 2% failure rate in perftests
of 20,000 messages against a cluster with security enabled.
Problem was occasional receit of encrypted frames before the
security codec had been enabled. This is fixed with locking in
cluster code (no new locks in broker code) and a callback that is
fired by broker::ConnectionHandler::Handler to tell the cluster
code when the opening handshake has finished.
This was never a problem in the non-clustered broker before because
everything happened in a single thread.
* the brokers that "shadow" the connection must not have null
authenticators rather than real ones, so that they go through all
the motions but don't do anythig. Only the directly-connected
broker can perform the security handshake.
* once the directly-connected broker receives the real user ID
from its callback, it mcasts that ID to all other brokers.
Otherwise the shadowing brokers will al think that the user ID
is "anonymous".
Check this by doing a substantial perftest, and using
qpid-stat -c localhost:PORT
to confirm that the brokers all have the same userID for the
same connection.
* the user ID, negotiated during the Sasl security startup, is
communicated from the directly connected broker to all other
cluster brokers.
* If security is *not* being used, then this code should *not* tell
the brokers anything about the userID -- or it will step on the value
that is being set by other code pathways.
* test program at cpp/src/tests/cluster_authentication_soak is not yet
fully automated -- run it with something like
"sudo ./cluster_authentication_soak 500"
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@944158 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
NotAllowedException
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@941636 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@929616 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
During update the cluster was sending an extra update to the failover exchange.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@905676 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
check browse(c3, "q", 5) == expected failed [ != m_1 m_2 m_3 m_4 m_5 ]
This was a test issue, not a broker issue. What seems to have been happening:
- start broker b0 & send messages.
- fork broker b1
- line 1103 (lqSub.release(...)); executes against b0 _before_ b1 connects for update lqSub.release(lqSub.getUnaccepted());
- line 1108 browse() executes during the update.
- update takes > 0.5 secs for some reason, browse times out.
The fix is a synchronous flush in browse() which will wait for the broker to be responsive before trying to get the messages.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@900829 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Replicate consumer's queue position to new cluster nodes.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@893175 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
- consolidate test env vars in test_env.sh, also useful from command line.
- generate test_env.sh with autoconf/cmake to cover library location differences.
- Remove explicit mention of .libs, use $QPID_MODULE_DIR to load modules.
- Fix run_test to run valgrind under cmake
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@885557 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
not sure.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@882598 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
protocol.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@881420 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@832134 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
client::ConnectionImpl used to contain a FailoverListener to subscribe
for updates on the amq.failover exchange. This caused some lifecycle
issues including memory leaks.
Now FailoverListener is a public API class that the user must create
associated with a session to get known-broker updates.
Removed the weak_ptr logic in client::SessionImpl which was only
required because of FailoverListener.
Made SessionImpl::close() idempotent. Gets rid of spurious warning
messages in some tests.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@829931 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
failures.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@823213 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
| |
Also minor improvements:
- Improved debug logging for consumers.
- Cluster tests scripts work with latest corosync: don't check/set ais group.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@821830 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
Miscelleneous whitespace fixes
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@813094 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@793912 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@793909 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@792103 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
qpidd is not found, and a process cascade results in which each forked process continues and runs all tests after its own instead of terminating; b) Hard-coded paths and names of libs, which have been moved into Makefile.am; c) Some tests use ScopedSuppressLogging, these tests are modified so the scope of the logging suppression does not include the broker/cluster startup.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@790215 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a client is using a connection that is closed at the broker end
because of an error, there is a race condition that allows the
connection to be incorrectly re-created on replica brokers which can
cause those brokers to exit with an error that does not occur on the
directly connected broker.
The fix: explicitly announce new connections, shadow connections are no
longer implicitly created on first use. Make error-check a cluster
control so it can be handled independently of the lifecycle of the
connection where an error initially occured.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@789947 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Prior to this fix, invalid data shut down the whole cluster.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@785788 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@785601 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@783451 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
messages on ring policy queue cause inconsistencies in queue state between nodes.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@782075 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
cluster node.
Altered queueDurabilityPropagationToNewbie test to not use in-process broker to fix error caused by linking change.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@781454 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@779241 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@779205 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
newly joined nodes by informing
the queue of any logically enqueued messages that are currently acquired (but not accepted or
released).
QPID-1873: Ensure that the various properties of a queue (durability, exclusivity etc) are correctly replicated
to new cluster members.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@779183 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@771943 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
environment. When this switch set, all brokers start with the store module loaded, all queues are declared persistent and all messages are also made persistent. The absolute paths to module libs hardcoded into the test fixtures have been replaced by paths relative to environment variable QPID_LIB_DIR (which is set in Makefile.am). The cluster test, when run from qpid, will continue to run without persistence by default; the intention is to have the store test code run this test directly with the switch turned on.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@770796 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Hide implementation of Message, move framing::MethodContent and framing::TransferContent out of public API.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@766899 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
- Handle partial failures (e.g. due to disk error): failing brokers shut down, others continue.
- Enable persistence in cluster tests.
- Correct message status in DeliveryRecord updates.
- Remove qpid.update queue when update complete - avoid it becoming persistent
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@764204 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
SASL client.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@752154 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@751760 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
Logging improvements, useful for debugging:
- qpid/SessionState.cpp: show frame bodies with command IDs.
- assign cluster-wide id number to each Event.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@750456 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@749313 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
| |
- Set correct user ID on update connections.
- Allow configuration of user, pass and mechanism used for update connections.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@743839 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@742774 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@742602 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
by other tests.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@741568 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
- ConnectionDecoder: separated from Connection.
- cluster/PollableQueue: stop processing frames if PollableQueue is stopped.
- move state checks in event-queue handler to frame-queue handler.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@740459 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@737971 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@735059 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Shlib.cpp: added file name to errors messages.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@720924 13f79535-47bb-0310-9956-ffa450edef68
|