summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
Commit message (Collapse)AuthorAgeFilesLines
* QPID-5568: HA C++ qpid::messaging AMQP 1.0 client failover logging is not clearAlan Conway2014-02-207-150/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The qpid::messaging AMQP 1.0 protocol logging did not give clear information about reconnection during failover. This patch simplifies the reconnect logic by collapsing all known addresses from broker URL and reconnect URLs into a single URL with no duplicates. It rationalizes the info and notice logging as follows: # Initial connection with multiple addresses, info logs show the # full URL, each attempt to connect and the finally connected address. [Messaging] info Starting connection to amqp:tcp:20.0.10.33:5672,tcp:20.0.10.34:5672,tcp:20.0.10.35:5672 [Messaging] info Connecting to tcp:20.0.10.33:5672 [Messaging] info Failed to connect to tcp:20.0.10.33:5672 [Messaging] info Connecting to tcp:20.0.10.34:5672 [Messaging] info Failed to connect to tcp:20.0.10.34:5672 [Messaging] info Connecting to tcp:20.0.10.35:5672 [Messaging] info Connected to tcp:20.0.10.35:5672 # Re-connection due to a failure. notice logs for the start of reconnection (with full URL) # and eventual sucess (with individual address). info logs for individual connection attempts. [Messaging] notice Auto-reconnecting to amqp:tcp:20.0.10.33:5672,tcp:20.0.10.34:5672,tcp:20.0.10.35:5672 [Messaging] info Connecting to tcp:20.0.10.33:5672 [Messaging] info Failed to connect to tcp:20.0.10.33:5672 .... [Messaging] info Connected to tcp:20.0.10.33:5672 [Messaging] notice Auto-reconnected to amqp:tcp:20.0.10.33:5672 The idea here is that there are no logs by default (info is not on by default) for "normal" behavior, but failover does get a (short) notice log by default. By turning on info logs you can follow the detailed blow-by-blow of failover without getting drowned in the detail of debug logs. Note that final failure to connect is signalled to the application via an exception. There was not previously any log message for that and I didn't add one. Additional changes: updated qpid-ping test client to use the messaging library. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1570231 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5549: windows ssl over AMQP 1.0Clifford Allan Jansen2014-02-193-4/+143
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1569916 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix build error in ha_test_max_queues for release builds.Alan Conway2014-02-181-1/+4
| | | | | | argc was only being tested in an assert which was compiled out for release builds. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1569400 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix windows build problem introduced by r1565431 in ↵Alan Conway2014-02-061-3/+7
| | | | | | log/Statement.cpp commit. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565448 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Get rid of valgrind "rechable" block in logging statements.Alan Conway2014-02-063-38/+14
| | | | | | | | | Each logging statement was allocating and not freeing a string, generating a huge number of harmless but annoying "blocks are still reachable". Fixed so the strings are freed at static destructor time. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565431 13f79535-47bb-0310-9956-ffa450edef68
* Author: Alan Conway <aconway@redhat.com>Alan Conway2014-02-062-2/+2
| | | | | | | --- log message follows this NO-JIRA: Remove use of python built-in 'next', not available before python 2.6. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565382 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5524: ssl-cert-name connection argument processing in AMQP 1.0. cpp clientClifford Allan Jansen2014-02-064-1/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565376 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5544: HA memory leak in backup broker after shutdown.Alan Conway2014-02-066-109/+45
| | | | | | | | The memory leaks were due to shared_ptr cycles between the QueueReplicator, Bridge and Link objects. This patch breaks the cycles using weak_ptrs in the appropriate places. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565340 13f79535-47bb-0310-9956-ffa450edef68
* NO_JIRA: Added Apache license text to tx-text-soak.sh, updates to ↵Kim van der Riet2014-02-052-10/+33
| | | | | | linearstore ISSUES file git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564935 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5361: Added a bash script which allows for transactional soak testing.Kim van der Riet2014-02-051-0/+234
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564893 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5480: Recovery of store failure with "JERR_MAP_NOTFOUND: Key not found ↵Kim van der Riet2014-02-0522-247/+371
| | | | | | in map." error message. Fixed numerous recovery issues, particularly the handling of files at the end of the file list during recovery when the last file is not used or incompletely written. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564877 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5531: [C++ broker] Set timeout for every DTX transactionPavel Moravec2014-02-055-5/+23
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564694 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5540: use mutex to ensure single SCHANNEL_SHUTDOWNClifford Allan Jansen2014-02-052-6/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564644 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5539: Separate credential processing for re-use in AMQP1.0 SSL transport.Clifford Allan Jansen2014-02-054-255/+365
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564611 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5528: HA add missing QPID_BROKER_EXTERN declarations.Alan Conway2014-02-031-4/+4
| | | | | | | Missing from previous commit r1564010 | QPID-5528: HA Clean up error messages around rolled-back transactions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564120 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5528: HA Clean up error messages around rolled-back transactions.Alan Conway2014-02-0315-76/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A simple transaction test on a 3 node cluster generates a lot of errors and rollback messages in the broker logs even though the test code never rolls back a transaction. E.g. qpid-cluster-benchmark -b 20.0.20.200 -n1 -m 1000 -q3 -s2 -r2 --send-arg=--tx --send-arg=10 --receive-arg=--tx --receive-arg=10 The errors are caused by queues being deleted while backup brokers are using them. This happens a lot in the transaction test because a transactional session must create a new transaction when the previous one closes. When the session closes the open transaction is rolled back automatically. Thus there is almost always an empty transaction that is created then immediately rolled back at the end of the session. Backup brokers may still be in the process of subscribing to the transaction's replication queue at this point, causing (harmlesss) errors. This commit takes the following steps to clean up the unwanted error and rollback messages: HA TX messages cleaned up: - Remove log messages about rolling back/destroying empty transactions. - Remove misleading "backup disconnected" message for cancelled transactions. - Remove spurious warning about ignored unreplicated dequeues. - Include TxReplicator destroy in QueueReplicator mutex, idempotence check before destroy. Allow HA to suppress/modify broker exception logging: - Move broker exception logging into ErrorListener - Every SessionHandler has DefaultErrorListener that does the same logging as before. - Added SessionHandlerObserver to allow plugins to change the error listener. - HA plugin set ErrorListeners to log harmless exceptions as HA debug messages. Unrelated cleanup: - Broker now logs "incoming execution exceptions" as debug messages rather than ignoring. - Exception prefixes: don't add the prefix if already present. The exception test above should now pass without errors or rollback messages in the logs. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1564010 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5519: ACL property/properties for paged queues - fixed typo, added ↵Pavel Moravec2014-02-032-2/+225
| | | | | | tests and documentation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563866 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5534: [C++ broker] Headers exchange can route a message to one queue ↵Pavel Moravec2014-02-031-1/+6
| | | | | | multiple times git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563863 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5519: ACL property/properties for paged queuesPavel Moravec2014-02-024-1/+61
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563628 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5121: Store module does not raise exception when attempting to enqueue ↵Pavel Moravec2014-02-021-2/+4
| | | | | | a message bigger than the journal size git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563613 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5532: [C++ broker] Add debug log when timeouting DTX transactionPavel Moravec2014-02-011-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563403 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5485: If no directory for paging file is enabled print warning (as ifAndrew Stitcher2014-01-318-15/+12
| | | | | | | memory mapped files were not supported) but still create a queue. - Also improve DataDir const correctness. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563256 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5485: Fixes to broken original checkinAndrew Stitcher2014-01-312-4/+5
| | | | | | | - Fix signatures of dummy windows memory mapped file implementation - Fix detecting no data dir git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563152 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5529: remove failed send from delivery bufferGordon Sim2014-01-311-5/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563122 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5485: By default use a subdirectory of the data dir called "pq" forAndrew Stitcher2014-01-309-22/+40
| | | | | | | page queue files. If neither data dir nor paging dir are set then error on any attempt to create a paged queue. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1563012 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Removed unused defines from config.hAndrew Stitcher2014-01-271-5/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561857 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Minor rationalization of log statement priorities.Alan Conway2014-01-276-13/+10
| | | | | | | | | Demote "backup of queue x connected to y" from info to debug. Tighten up redundant 'notice' messages around promotion of primary. Promote 'DTX not implemented' to warning Misc. other minor adjustments. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561833 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Minor refactor to improve code safety: calling shared_from_this on ↵Alan Conway2014-01-2711-31/+64
| | | | | | | | | | | | | | creation. Previous anti-pattern: Classes need to call shared_from_this during creation, but can't call it in the ctor so had a separate initiailize function that the user was required to call immediately after the constructor. Possible for user to forget. Improved pattern: Introduce public static create() functions to call constructor and initialize, make constructor and initialize private. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561828 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5516: Only enable Dtrace style probes on LinuxAndrew Stitcher2014-01-271-8/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561775 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5513: HA backup fails if number of replicated queues exceeds number of ↵Alan Conway2014-01-271-1/+1
| | | | | | | | channels. Fix link error (incorrect libraries listed) in ha_test_max_queues on windows. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561754 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5513: HA backup fails if number of replicated queues exceeds number of ↵Alan Conway2014-01-2413-16/+195
| | | | | | | | | | | | | | | | | | | | | | | | | channels. The problem: - create cluster of 2 brokers. - create more than 32768 queues (exceeds number of channels on a connection) - backup exits with critical error but - client creating queues receives no error, primary continues with unreplicated queue. The solution: Primary raises an error to the client if it attempts to create queues in excess of the channel limit. The queue is not created on primary or backup, primary and backup continue as normal. In addition: raised the channel limit from 32k to 64k. There was no reason for the smaller limit. See discussion: http://qpid.2158936.n2.nabble.com/CHANNEL-MAX-and-CHANNEL-HIGH-BIT-question-tp7603121p7603138.html New unit test to reproduce the issue, must create > 64k queues. Other minor improvements: - brokertest framework doesn't override --log options in the arguments. - increased default heartbeat in test framework for tests that have busy brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561206 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Make the python test install depend on the python files.Andrew Stitcher2014-01-241-2/+5
| | | | | | | | - So just after the previous checkin Gordon changed the python code. This made me think that the python install needs to have the dependencies! git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561130 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Changes to python related build processes:Andrew Stitcher2014-01-231-4/+16
| | | | | | | | | | - Use an intermediate build area in the build area not in the source. -- With this change the source tree is now completely untouched during a build. - Fiddle with CMake so that the python install into the build area doesn't happen on every build. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560851 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5509: release messages that have not yet been fetched when closing receiverGordon Sim2014-01-232-11/+17
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560718 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5506: Use a randomness source to certutil that will definitely exist.Andrew Stitcher2014-01-231-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560692 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5488: Allow for not enough bytes initially received by client for ↵Andrew Stitcher2014-01-232-2/+6
| | | | | | protocol init git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560575 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5503 implement nextReceiver()Gordon Sim2014-01-227-3/+33
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560394 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5501: implement missing qmf operationsGordon Sim2014-01-229-4/+122
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560393 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5501: raise error if topic of given name already existsGordon Sim2014-01-221-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560307 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5498: restore expiration on paged messagesGordon Sim2014-01-214-11/+34
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560126 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5497: implement Session::sync()Gordon Sim2014-01-213-2/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560125 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5488: Fix Amqp protocol version printingAndrew Stitcher2014-01-172-9/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1559251 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Really fix the test for the correct previous versions of cmakeAndrew Stitcher2014-01-171-2/+2
| | | | | | (sorry, this is getting embarassing) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1559198 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5486: Creating paged queue can overwrite existing qpidd filesPavel Moravec2014-01-171-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1559090 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5489: Uuid code improvementsAndrew Stitcher2014-01-1712-183/+35
| | | | | | | | | | | | | - Don't use uuid_compare() as it will get the wrong version of the function under FreeBSD which has a uuid library build into libc with different function signatures from libuuid but some overlapping names. - Reorganise the uuid code to limit the used external symbols to uuid_generate(), uuid_parse(), uuid_unparse() - Minimise the framing::Uuid code so that it is a simple wrapper around types::Uuid - Use uuid_generate() as the symbol to search in CMake (uuid_compare() isn't used in qpid anymore). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1559017 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: fix to allow warning silencing to work on previous versions of ↵Andrew Stitcher2014-01-161-2/+4
| | | | | | cmake too git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558960 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Turn off cmake warnings caused by change in recent cmake 2.8 versionsAndrew Stitcher2014-01-161-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558954 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5487: [linearstore] Replace use of /dev/urandom with c random generator ↵Kim van der Riet2014-01-165-31/+28
| | | | | | calls git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558913 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5486 Creating paged queue can overwrite existing qpidd filesPavel Moravec2014-01-161-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558806 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5485 Deleting paged queue does not remove underlying filePavel Moravec2014-01-165-0/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558790 13f79535-47bb-0310-9956-ffa450edef68